Politics, Weather, Photography, and the Dog
Monday 31 March 2014

The Cubs will start the season in Philadelphia this afternoon, so at the moment they have a perfect record. That will likely change within the next 36 hours, so we're not to jazzed about it in Chicago.

When they open at Wrigley Field on Friday, it may be cold and drizzly according to the National Weather Service forecast this morning, but at least they'll finally have good beer:

After 25 years, Goose Island finally has a home field advantage at Wrigley Field.

Chicago’s longest-tenured beer maker will be abundant at Clark and Addison this season for the first time, with both 312 Urban Wheat Ale and the newly released 312 Urban Pale Ale to be sold by vendors throughout the stadium, according to the Cubs.

Goose’s Green Line (a pale ale available only in Chicago and on draft), Matilda (a Belgian-style pale ale) and Sofie (a saison) will also be available at Wrigley in 2014.

The reintroduction of Goose Island and departure of Old Style will come about because InBev now owns Goose Island. InBev also owns Budweiser. So Goose Island isn't by any stretch a craft brewer anymore, but they still make better beers than MillerCoors.

Still, it pains me to quote the end of the Tribune article: "U.S. Cellular Field will again be dominated by MillerCoors products (Miller Lite, Coors Light, Blue Moon and Redd’s Apple Ale), but will again feature a solid and varied lineup of craft beers that includes Bell’s Oberon, Revolution Anti-Hero, Rogue Dead Guy Ale, Lagunitas Daytime and Sierra Nevada Pale."

And there's Wrigley Field for you: Loser team, loser beers, sells out every home game. There is no god.

Monday 31 March 2014 09:21:27 CDT (UTC-05:00)  |  | Chicago | Cubs | Kitchen Sink#
Sunday 30 March 2014

The O'Hare CTA station closed after Monday's train crash, and just re-opened.

Sunday 30 March 2014 14:24:03 CDT (UTC-05:00)  |  | Chicago | Travel#

Because of some new tasks related to my job, I haven't been able to post the last couple of days. Today it's 10°C and sunny, and getting warmer, so I have to go outside and play.

There is a chance that today will be the warmest since November 17th. If that happens, I will post again today. If not, I'll just enjoy the weather quietly, to myself.

Sunday 30 March 2014 11:54:23 CDT (UTC-05:00)  |  | Chicago | Weather#
Thursday 27 March 2014

Gail Gygax, widow of Dungeons and Dragons creator Gary Gygax, is trying to get a statue to her late husband in Lake Geneva, Wis.:

Since 2009, Gail has been trying to make a Gary Gygax memorial happen in Lake Geneva.

And it should.

Or, at least, some form of a memorial to Gygax, whose influence on contemporary culture is vast and underrated, should happen. As David Ewalt, an editor at Forbes magazine and author of the 2013 history "Of Dice and Men," said, Dungeons & Dragons took the raw materials of Tolkien's "Lord of the Rings" and revitalized the fantasy genre; it influenced the first generation of video game developers, introducing the now-familiar concept of game characters who could grow, improve, "level up"; Gygax's Gen Con, a role-playing game convention founded in 1968, helped popularize geek conventions (and continues to, decades later).

But most important, Ewalt said, "What Gary did was help give birth to a creative class: filmmakers, writers, TV showrunners. A generation now making art — from the 'Game of Thrones' guys to whomever — learned how to tell a story, and the power of narrative, from first being D&D players in the 1970s and '80s.

I hope they build the statue, and I'll leave a d20 in tribute. I actually played a game with Gygax as DM back in, oh, 1980, right in The Dragon in Lake Geneva. I wish I'd been old enough to appreciate the honor without going all fanboy on him. He seemed amused. And he signed my second-edition Players Handbook, which I still have somewhere.

I miss D&D...

Thursday 27 March 2014 10:55:34 CDT (UTC-05:00)  |  | Kitchen Sink#
Tuesday 25 March 2014

I got home with no difficulty and bypassed the dead El train at O'Hare through the simple expedient of taking a taxi.

I'm catching up on work right now, so further comments will issue later. It also turns out, apparently, that a virus had made a beachhead in my nose, so I will have to fight that off before my wit and verve returns.

In totally unrelated news, today is the 30th anniversary of the fictional Breakfast Club.

Tuesday 25 March 2014 15:54:48 CDT (UTC-05:00)  |  | Chicago | Kitchen Sink | London | Travel#
Monday 24 March 2014

I'm now at Heathrow where I've got a really great perch overlooking the approach end of runway 9L. A JAL 777 has just floated down to the runway and a BA 747 is taxiing past the window. It's a little piece of aviation heaven in Terminal 5 as I wait for the 787 to Toronto.

As I mentioned earlier, however, my trip home tomorrow morning may end a little differently than usual because of this:

(Photo credit.)

Fortunately, no one was hurt. Unfortunately, the El still missed its flight. Never try to carry too much baggage up the stairs; use the elevator instead.

Boarding starts in a few minutes. Time to boogie. But I'll wait for this BA 777 to land. They're really amazingly graceful when they touch down.

Monday 24 March 2014 15:27:53 GMT (UTC+00:00)  |  | Aviation | Chicago | London | Travel#

Just checking the local news in Chicago a moment ago I see a weather forecast of -2°C and blowing snow for Tuesday, rain for the rest of the week, and a crash at the O'Hare subway station:

Thirty people were injured after a CTA Blue Line train derailed and hit a platform at O'Hare International Airport about 2:55 a.m. Monday.

The injuries are not life threatening, according to early reports from the scene to Chicago Police Department headquarters, Chicago Police Department News Affairs Officer Ron Gaines said.

It's not clear how fast the train was moving but it jumped a bumper at the end of the line and moved up an escalator, according to Chicago Fire Department Spokesman Larry Langford.

The CTA posted to its Twitter page that trains were stopped at O'Hare but running between the Logan Square and Rosemont stops.

Yeah, I'm in a hurry to get back.

Monday 24 March 2014 11:06:17 GMT (UTC+00:00)  |  | Aviation | Chicago | Travel | Weather#
Sunday 23 March 2014

It's 11pm on Sunday and everything is closed, so I'm taking a break from my break. My body still seems to think it's on Chicago time, which will help me rejoin American civilization on Tuesday, though at the moment it means my body thinks it's 6pm and wonders what it will do for the next three and a half hours or so.

I have accomplished what I set out to do this weekend. I visited the British Museum, the Southampton Arms, and another pub a friend recommended, The Phoenix. I've also finished Clean Coder, read Snow Crash cover to cover, and have gotten mostly through High Fidelity. The last book in the list connects Chicago and London—specifically, Camden and Gospel Oak, two neighborhoods I spent time in this weekend—more completely than any other book I can think of.

Tomorrow evening (morning? it's hard to tell) I'm flying out on a 787, about which I will certainly have something to write. I'm quite jazzed about it.

Now, back to Nick Hornby...

Sunday 23 March 2014 23:11:47 GMT (UTC+00:00)  |  | Aviation | Best Bars | London | Travel#

I debated this question with someone at a dinner a couple weeks ago. She suggested higher megapixel numbers told you more about the ego of the camera buyer than about the quality of the images.

I said it depends on how you're using the photos, but generally, more data yields more useful photos.

Here's an illustration, using a vaguely-recognizable landmark that I happened to pass earlier this weekend, and just happened to have photographed with three different cameras.

Sunday 23 March 2014 22:49:16 GMT (UTC+00:00)  |  | Geography | London | Photography#
Saturday 22 March 2014

The equinox, when the sun appears directly over the equator so that night and day is approximately equal all over the planet, happened Thursday. Today comes the consequence to the earth continuing in its orbit as the south pole appears to point farther away from the sun, as it's done since the last solstice.

In just about two hours, at 17:09 UTC, the sun sets on the Amundsen-Scott South Pole Station, and doesn't rise again until around 01:18 UTC on September 20th.

Good luck to the over-winter crew at Amundsen-Scott. Enjoy the long night.

Saturday 22 March 2014 15:24:20 GMT (UTC+00:00)  |  | #

Thursday morning:

Thursday evening:

More photos tonight.

Saturday 22 March 2014 14:05:10 GMT (UTC+00:00)  |  | Aviation | Chicago | London | Travel#

I had planned to post some photos tonight showing the evolution of digital cameras, using a local landmark, but there's a snag. The CF card reader I brought along isn't showing up on my computer, even though the computer acknowledges that something is attached through a USB port.

As I'm visiting one of the most sophisticated and technological cities in the world, I have no doubt I can fix this tomorrow. Still, it's always irritating when technology that worked a few days ago simply stops working.

For those doubting my troubleshooting skills, I have confirmed that the CF card has all the photos I shot today; that the computer can see the CF card reader; and that the computer can connect effectively to other USB attachments. The problem is therefore either in the OS or in the card reader, and I'm inclined to suspect the card reader.

Saturday 22 March 2014 02:58:25 GMT (UTC+00:00)  |  | London | Software#
Thursday 20 March 2014

I believe I made record time from my house to my final stopping point in the Ancestral Homeland. Most importantly: I got here before all the curry places closed.

More later.

Thursday 20 March 2014 23:54:52 GMT (UTC+00:00)  |  | Aviation | London | Travel#
Wednesday 19 March 2014

The repercussions from Monday's data-recovery debacle continued through yesterday.

By the time business started Tuesday morning, I had restored the client's application and database to the state it had at the moment of the upgrade, and I'd entered most of their appointments, including all of them through tomorrow (Thursday). When the client started their day, everything seemed to be all right, except for one thing I also didn't know about their business: some of their customers pay them based on the appointment ID, which is nothing more than a SQL IDENTITY column in the database.

If you know how databases work, you know that IDENTITY columns are officially non-deterministic. In this specific case, the column increments by one every time it adds a row, but also in this specific case, I didn't re-enter the data in the same order it was originally entered, since I prioritized the earlier appointments.

We've gotten through the problem now, and the client no longer want to put my head on a spike, so I will now take a moment for an after-action review that might help other software developers in the future.

First, the things I did right:

  • When I deployed the upgrade Saturday, I preserved the state of the database and application at exactly that moment.
  • All of the data in the system, every field of it, was audited. It was trivially easy to produce a report of every change made to the system from roll-out Saturday afternoon through roll-back Monday night.
  • When I rolled back the upgrade Monday night, I preserved the state of the upgraded database and application at exactly that moment.
  • When the client first noticed the problem, I dropped everything else and worked out a plan with them. The plan centered around getting their business back up first, and then dealing with the technology.
  • Their customers were completely back to normal at the start of business Tuesday.
  • The application runs on Windows Azure, which made preserving the old application state not only easy, but possible.

So what should I have done better?

  • My biggest error was overconfidence in my ability to roll back the upgrade. No matter what other errors I made, this was the root of all of them.
  • The second major error was not testing the UI on Internet Explorer 8. Mitigating this was the fact that neither I nor my client was aware that the bulk of their customers used IE8. However, given that people using IE8 were totally unable to use the application, even if the numbers of customers using IE8 was very small, the large impact should have put IE8 near the top of my regression test checklist.
  • Instead of spending a couple of hours re-entering data, I should have written a script to do it.
  • I have always regretted (though never more than today) publicizing the appointments IDENTITY column to the end user, because it's normal they'd use this ID for business purposes. This illustrates the danger—not just the sloppy design—of using a single database field for two purposes. Any future version of the application will have an OrderID field that is not a database plumbing field.

All in all, the good things outweighed the bad, and I may get back in my client's good graces when I roll out the next update. You know, the one that works on IE8, but still solves the looming problem of the platform's age.

Wednesday 19 March 2014 09:59:00 CDT (UTC-05:00)  |  | Software | Business | Cloud | Windows Azure#
Tuesday 18 March 2014

At 8:16 this morning, a long-time client sent me an email saying that one of his customers couldn't was getting a strange bug in their scheduling application. They could see everything except for the tabbed UI control they needed to use. In other words, there was a hole in the screen where the data entry should have been.

Here's how the rest of the day went around this issue. It's the kind of thing that makes me proud to be an engineer, in the same way the guys who built Galloping Gertie were proud.

The whole story is past the jump...

Monday 17 March 2014 23:26:14 CDT (UTC-05:00)  |  | Business | Cloud | Security | Windows Azure | Work#
Monday 17 March 2014

Here are about 30 reasons, just from the last 48 hours:

CWB estimates that 21 people were taken into police custody during Wrigleyville's Saturday-into-Sunday St. Patrick's binge.

But there was only one tazing. (Rats!)

28 batteries were witnessed or otherwise confirmed by police. Few were formalized with police reports.

Ambulances took at least 17 people to area hospitals and officers were tied up with at least 19 calls from cab drivers who had disputes with their passengers over payment.

Here, now, are the notable moments in this year's green-laden blow out in the area (with a splash of Lincoln Park tossed in):

[Saturday,] 12:36PM - Huge party in an apartment, 600 block of Cornelia. It's big, it's loud, and people are urinating out the windows.

It goes on from there, and it doesn't even include yesterday's mishigos on Lake Shore Drive.

Monday 17 March 2014 09:27:25 CDT (UTC-05:00)  |  | Chicago#
Sunday 16 March 2014

Some asshole with a gun and an arrest warrant has blocked the entire length of North Lake Shore Drive as every cop in Illinois tries to prise him from his car:

A car chase through the South Side and downtown involving a man wanted in connection with a murder in Georgia ended with a standoff between the man and police after the vehicle crashed on Lake Shore Drive on the Near North Side, officials and witnesses said.

According to Harvey Police Department spokeswoman Sandra Alvarado, the man in the vehicle police were pursuing is wanted in connection with a murder in Hampton, Ga. Alvarado said that at 12:24 p.m. today, Harvey police had been contacted by the Henry Country Sheriff's Office asking for help in locating a homicide suspect. Harvey police were given a description of the vehicle, its registration, GPS location and arrest warrant information on the suspect, who was wanted in connection with a March homicide. Alvarado did not name the suspect.

Harvey police located the vehicle, which fled from officers about 12:27 p.m., beginning a chase on highways and interstates in the south suburbs and on the South Side of Chicago. Eventually the vehicle ended up on South Lake Shore Drive, and then North Lake Shore, where it crashed about 1:10 p.m. near Fullerton Parkway. The dark-colored vehicle came to rest in the grass just to the east of the northbound lanes there and police were seen surrounding it with guns drawn, pointing at the vehicle.

This seems like an overreaction, but I'm not a cop. I will say that it took me nearly 90 minutes to get from Wilmette to home this afternoon, which happens when the 40,000 cars that would ordinarily go down Lake Shore Drive during that period instead go down Broadway, Clark, Halsted, and Ashland.

The incident is still going on about 800 meters from my apartment. I'll know it's over when the news helicopters bugger off.

Sunday 16 March 2014 17:09:03 CDT (UTC-05:00)  |  | Chicago#

As predicted last week in private Kremlin memoranda, today's referendum in Crimea has determined that more people on the peninsula support union with Russia than actually live on the peninsula. As someone once said more eloquently than I:

But here's the BBC:

Some 95.5% of voters in Crimea have supported joining Russia, officials say. after half the votes have been counted in a disputed referendum.

Crimea's leader says he will apply to join Russia on Monday. Russia's Vladimir Putin has said he will respect the Crimean people's wishes.

Some review, I think, is in order.

First, Crimea doesn't have a leader that can apply for union with Russia any more than Long Island has a leader that can apply for union with Bermuda.

Second, Putin's respect for the Crimean people's wishes notwithstanding, I can't decide if we're back in 1980, 1939, 1914, or 1836; regardless, it's nice to have the USSR back in town as we're all sick of terrorists.

Third, is there anyone who thinks about these things seriously and believes that this action shows anything other than Russian weakness? Authoritarian leaders always make this mistake, and they wind up destroying their countries. You can't conquer your way to security. Just ask, well, us.

Sunday 16 March 2014 17:01:04 CDT (UTC-05:00)  |  | World#

The news recently and Krugman this morning have brought Tennyson to mind:

Theirs not to make reply,
Theirs not to reason why,
Theirs but to do and die:
Into the valley of Death
  Rode the six hundred.

Heroism has its place, but not when it takes everyone else through hell.

Sunday 16 March 2014 11:51:18 CDT (UTC-05:00)  |  | World | Business#
Saturday 15 March 2014

I've just picked up Bob Martin's The Clean Coder: A Code of Conduct for Professional Programmers.

I'm just a couple chapters in, and I find myself agreeing with him vehemently. So far, he's reinforcing the professional aspects of the profession. Next chapters will TDD, testing, estimation, and a bunch of other parts of the profession that are more difficult than the actual coding part.

More later.

Saturday 15 March 2014 14:06:41 CDT (UTC-05:00)  |  | Software | Business#
Friday 14 March 2014

All four are dead:

Quiznos, the Denver-based sandwich chain, said Friday it had filed for Chapter 11 bankruptcy in Delaware, the second quick-service restaurant chain in a week to do so.

Quizno's bankruptcy filing comes just days after Sbarro, the New York-based pizza chain, filed for court protection in Manhattan on Monday, the second time in three years. Hot Dog on a Stick, another purveyor of quick-service food, in February also filed for bankruptcy protection.

This is unfortunate especially for Chicago-area coyotes, as they are known to like Quiznos.

Friday 14 March 2014 16:38:29 CDT (UTC-05:00)  |  | Kitchen Sink | Business#
Thursday 13 March 2014

Calumet Photo, one of the last real photography stores, has closed abruptly:

Calumet Photographic, a Chicago-based camera supply and photo services provider that first opened 1939, has abruptly closed its doors and filed for Chapter 7 bankruptcy protection.

Calumet said on its Facebook page that it was closing its stores in the United States, but that its European stores would remain.

In its Chapter 7 filing, in which a company prepares to liquidate, it listed between $50 million and $100 million in assets and $10 million to $50 million in liabilities.

I rented lenses from them for my trips to Korea and Sint Maarten recently, and I found them truly helpful on other photographic issues. This is a big blow to photography.

Thursday 13 March 2014 15:51:42 CDT (UTC-05:00)  |  | Photography | Business#

Even though we have snow on the ground once again, the sun came out this morning, so my bus stop didn't look as grim as it did yesterday:

Thursday 13 March 2014 09:21:52 CDT (UTC-05:00)  |  | Chicago | Weather#
Wednesday 12 March 2014

First, we get the worst cold and the most snow of any winter in the last 32 years. It even alienates many of its allies with its stubbornness in the face of popular (and meteorological) opposition, refusing to give up a fight it can't win. Finally, warm weather finally prevails, ending the snow's doomed effort to hold ground it will never be able to keep. This is Monday morning:

Then, just when we were loosening our scarves, Arizona hit this morning:

Winter, you're just making people despise you more. It's the middle of March already. Not only will you be gone and forgotten in two months, but an ENSO event is forming in the Pacific right now, so you won't even be back next season.

Go away, winter. You're obsolete, losing even your friends, and damaging the country.

Wednesday 12 March 2014 08:47:36 CDT (UTC-05:00)  |  | Chicago | US | Weather#
Tuesday 11 March 2014

I just did a dumb thing in Mercurial, but Mercurial saved me. Allow me to show, vividly, how using a DVCS can prevent disaster when you do something entirely too human.

In the process of upgrading to a new database package in an old project, I realized that we still need to support the old database version. What I should have done involved me coming to this realization before making a bucket-load of changes. But never mind that for now.

I figured I just need to create a branch for the old code. Before taking this action, my repository looked a like this:

Thinking I was doing the right thing, I right-clicked the last commit and added a branch:

Oops:

Well, now I have a problem. I wanted the uncommitted changes on the default branch, and the old code on the 1.0 branch. Now I have the opposite condition.

Fortunately this is Mercurial, so nothing has left my own computer yet. So here's what I did to fix it:

  1. Committed the changes to the 1.0 branch of this repository. The commit is in the wrong branch, but it's atomic and stable.
  2. Created a patch from the commit.
  3. Cloned the remote (which, remember, doesn't have the changes) back to my local computer.
  4. Created the branch on the new clone.
  5. Committed the new branch.
  6. Switched branches on the new clone back to default.
  7. Applied the patch containing the 2.0 changes.
  8. Deleted the old, broken repository.

Now it looks like this:

Now all is good in the world, and no one in my company needs to know that I screwed up, because the screw-up only affected my local copy of the team's repository.

It's a legitimate question why I didn't create a 2.0 branch instead. In this case, the likelihood of an application depending on the 1.0 version is small enough that the 1.0 branch is simply insurance against not being able to support old code. By creating a branch for the old code, we can continue advancing the default branch, and basically forget the 1.0 branch is there unless calamity (or a zombie application) strikes.

Tuesday 11 March 2014 14:38:49 CDT (UTC-05:00)  |  | Software#

One of the funnier things I've seen recently:

Tuesday 11 March 2014 11:47:17 CDT (UTC-05:00)  |  | Jokes | US#
Monday 10 March 2014

Officially, at 1pm today, O'Hare reported no measurable snow on the ground.

And at 2pm, the official Chicago temperature was 11°C, the warmest we've seen since December 4th.

If only they weren't predicting more snow tomorrow...

Monday 10 March 2014 14:05:37 CDT (UTC-05:00)  |  | Chicago | Weather#

In the hopeless war between spring-like warmth and the ice still covering Chicago, the heat has almost prevailed. Officially at 7am O'Hare had only 25 mm of snow left after an overnight temperature rise to 6°C.

The end is near. Those last few millimeters have no chance of surviving the day, between nearly 12 hours of sunlight and a predicted high of 14°C.

Still, today is the 71st consecutive snow-covered day here. No one under 30 has ever seen this in Chicago before. And it's unlikely anyone ever will again.

You had a good run, winter, but it's over now. Go home.

Monday 10 March 2014 07:26:04 CDT (UTC-05:00)  |  | Chicago | Weather#

It looks like we're going to go 71 days with snow on the ground before it all melts. But a couple of subtle yet telling things have happened since I last griped.

First, the temperature has gone up since sunset, as forecast. It hasn't gone up a lot, but the influx of warm air from the Gulf of Mexico will continue through tomorrow, to the detriment of all the snowdrifts in Chicago.

It's hard to get your mind around how much heat the atmosphere moves around. A human being can generate about 6-8 megajoules as heat every day. (A food calorie is about 4,200 joules.) Your car or office can generate tens of megajoules to keep you warm. But when an air mass comes up along the Mississippi to Chicago, it's dragging so much energy that we need to review exponents. We're talking about petajoules.

Which brings up the second point. We're not talking about an inch of fluffy ice crystals on a flower. We're actually talking about megatons of ice covering...everything. Not snow; ice.

Take a 10m square of ice just 50 mm thick—meaning just about any square of lawn in the Chicago area right now. So, that's 100 square meters times 50 mm (0.05m), which yields just 5 cubic meters of ice. It turns out, to change just that small amount of ice—oh, wait, that's five tons of ice (do the math)—into water takes 16.5 gigajoules of energy.

Also, when the energy goes into melting ice, it doesn't go anywhere else. I'll hold off on the physics for the moment, except to say that energy can't be created or destroyed, so when it goes into changing the state of a large mass of water without changing its temperature, it's pretty much unavailable for anything else. (Physicists reading this, please be kind; it's close enough.)

This is just a long way of saying: those last millimeters won't go quietly. The last bits of "snow" that the official weather observers measure aren't really snow, they're ice; and ice takes a lot of heat to melt. (Snow is easier to melt because it has so little mass for the same volume.)

Still, if the temperature gets up to its predicted 14°C tomorrow, that's a lot of heat fighting a lot of ice. It might get rid of the official snow cover at the airport, even. And that would leave us with nothing more than the two-meter snowbanks pushed up by all the plows for the last ten weeks. Joy.

Sunday 9 March 2014 22:33:11 CDT (UTC-05:00)  |  | Chicago | Weather#
Sunday 9 March 2014

When we got a few centimeters of snow on December 29th, no one expected it would still be on the ground after we changed the clocks in March. Yet there it is, officially 50 mm for the last 24 hours.

The 11am temperature at O'Hare was -0.6°C, and the forecast calls for the temperature to pop up to 7°C this afternoon and then stay above freezing until Tuesday night—possibly even getting up to 14°C tomorrow afternoon. If the little snow we've still got can survive that onslaught, then I will be impressed.

And the best part about this forecast? I won't write anything more about how many consecutive days of snow we've had. You're welcome.

Snow-cover reports come out every six hours. (The next report is due at 1pm.) I'll post as soon as the ground is officially snow-free.

Just one more moan: It's 18°C and sunny in London. But I won't be there for almost two more weeks.

Update: At 1pm the official snow depth was still 50 mm, but the temperature was up to 2°C. I'll check back in six hours.

Sunday 9 March 2014 11:30:16 CDT (UTC-05:00)  |  | Chicago | London | Weather#
Saturday 8 March 2014

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.

Saturday 8 March 2014 14:14:14 CST (UTC-06:00)  |  | London | Writing#

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.

Saturday 8 March 2014 14:12:13 CST (UTC-06:00)  |  | Chicago | Weather#
Friday 7 March 2014

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.

Friday 7 March 2014 17:41:56 CST (UTC-06:00)  |  | Software#

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.

Friday 7 March 2014 14:15:00 CST (UTC-06:00)  |  | Software#
Thursday 6 March 2014

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.

Thursday 6 March 2014 14:45:09 CST (UTC-06:00)  |  | Chicago | Weather#
Wednesday 5 March 2014

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.

Wednesday 5 March 2014 11:26:09 CST (UTC-06:00)  |  | Chicago | Parker | Politics#

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.

Wednesday 5 March 2014 08:25:46 CST (UTC-06:00)  |  | Chicago | Weather#

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.

Tuesday 4 March 2014 20:25:12 CST (UTC-06:00)  |  | Chicago | Weather#
Tuesday 4 March 2014

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

Now, to work.

Tuesday 4 March 2014 08:31:47 CST (UTC-06:00)  |  | Aviation | Chicago | Kitchen Sink | Cloud | Weather | Windows Azure#

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.

Monday 3 March 2014 21:34:01 CST (UTC-06:00)  |  | World#
Monday 3 March 2014

The third-worst winter in history ended (meteorologically) on Friday. And yet we woke up this morning to more snow and an overnight low of -19°C.

Even better, today I have to drive out to Suburbistan for a meeting. In the snow. Both ways. Uphill.

The meeting is in about two hours, so I guess I should get going now...

Monday 3 March 2014 07:45:37 CST (UTC-06:00)  |  | Chicago | Weather#
Saturday 1 March 2014

Parker, 14 weeksI'm David Braverman, this is my blog, and Parker is my 7½-year-old mutt. I last updated this About... page in September 2011, more than 1,300 posts back, so it's time for a refresh.

The Daily Parker is about:

  • Parker, my dog, whom I adopted on 1 September 2006.
  • Politics. I'm a moderate-lefty by international standards, which makes me a radical left-winger in today's United States.
  • The weather. I've operated a weather website for more than 13 years. That site deals with raw data and objective observations. Many weather posts also touch politics, given the political implications of addressing climate change, though happily we no longer have to do so under a president beholden to the oil industry.
  • Chicago (the greatest city in North America), and sometimes London, San Francisco, and the rest of the world.
  • Photography. I took tens of thousands of photos as a kid, then drifted away from making art until early 2011 when I finally got the first digital camera I've ever had whose photos were as good as film. That got me reading more, practicing more, and throwing more photos on the blog. In my initial burst of enthusiasm I posted a photo every day. I've pulled back from that a bit—it takes about 30 minutes to prep and post one of those puppies—but I'm still shooting and still learning.

I also write a lot of software, and will occasionally post about technology as well. I work for 10th Magnitude, a startup software consultancy in Chicago, I've got more than 20 years experience writing the stuff, and I continue to own a micro-sized software company. (I have an online resume, if you're curious.) I see a lot of code, and since I often get called in to projects in crisis, I see a lot of bad code, some of which may appear here.

I strive to write about these and other things with fluency and concision. "Fast, good, cheap: pick two" applies to writing as much as to any other creative process (cf: software). I hope to find an appropriate balance between the three, as streams of consciousness and literacy have always struggled against each other since the first blog twenty years ago.

If you like what you see here, you'll probably also like Andrew Sullivan, James Fallows, Josh Marshall, and Bruce Schneier. Even if you don't like my politics, you probably agree that everyone ought to read Strunk and White, and you probably have an opinion about the Oxford comma—punctuation de rigeur in my opinion.

Thanks for reading, and I hope you continue to enjoy The Daily Parker.

Saturday 1 March 2014 14:27:44 CST (UTC-06:00)  |  | Aviation | Baseball | Biking | Cubs | Geography | Kitchen Sink | London | Parker | Daily | Photography | Politics | US | World | Religion | Software | Blogs | Business | Cloud | Travel | Weather | Windows Azure | Work | Writing#

This is the Daily Parker's 4,000th post of the modern era. Since 13 November 2005 (3,030 days ago), I've posted 4,000 bits of flotsam, jetsam, and other things considered debris in some circles.

Four thousand entries ago:

  • George W. Bush was almost a year into his second term and Barack Obama was the junior U.S. Senator from Illinois;
  • Molly Ivins was still alive and kicking;
  • Our wars in Afghanistan and Iraq had stagnated;
  • Facebook was less than two years old but more than a year from general availability;
  • The Atlantic Ocean was seven weeks away from ending the weirdest hurricane season on record; and
  • Parker was still seven months from being born.

But also:

  • We had troops in Iraq and Afghanistan;
  • A sizable portion of the United States believed in the literal truth of 3,000-year-old Jewish mythology;
  • Vladimir Putin was president of Russia;
  • Most of the U.S. House of Representatives comprised exactly the same people it does today.

Back in my 3,002nd entry, I projected hitting 10,000 entries in April 2025. A thousand entries later, ticking along at a consistent 1.5 entries per day, the 10,000th entry is now due in...February 2025. Here's the progress for the first 4,000 posts, measured in posts per day:

I could go on. And I will. So keep reading.

Saturday 1 March 2014 14:15:41 CST (UTC-06:00)  |  | Blogs#
Search
On this page....
Opening day
O'Hare El station re-opens
Fewer blog postings? Must be spring
Save vs. Bureacracy, with +1 from your Charisma
Back in Chicago, drinking tea
Minor delays on the El this morning
Can't wait to get home
Week ending in London
Are more megapixels inherently good?
What the equinox means to a dozen scientists
Modern travel in two photographs
Weakest link in the chain
Smooth sailing flying
It's not the good times they care about, it's the bad
And the day started so well...
Why Ravenswood instead of, say, Lakeview?
Meanwhile, back in Chicago
Crimean referendum finishes days after ballots counted
Doomed to repeat it
My new favorite book
Quiznos and Sbarro and Rosencrantz and Guildenstern
Shuttered and stopped down
A little less ugly
How Chicago weather is like the Republican party
How to give yourself angina, Mercurial-style
President Obama Between Two Ferns
It's over. Winter lost. Finally.
The rear-guard action still holds ground
Ice is denser than snow
Ten weeks later
Down to a Sunless Sea
Snowy hell, day 69
No, that wasn't it at all
Could not find assembly in command-line MSTest execution
Day 67 of snowy hell
Chicago city council voting today to ban puppy mills
Wow, we needed this
The silver frozen lining to the polar vortex
Morning link round-up
Dawn in Crimea
Must be spring
About this blog (v 4.2)
4,000
Countdowns
The Daily Parker +3264d 01h 01m
To London +5d 02h 42m
Parker's 9th birthday 237d 12h 12m
My next birthday 318d 16h 17m
Categories
Aviation (336) Baseball (110) Best Bars (6) Biking (44) Chicago (891) Cubs (197) Duke (132) Geography (329) Higher Ground (5) Jokes (282) Kitchen Sink (637) London (52) Parker (189) Daily (204) Photography (142) Politics (303) US (1079) World (252) Raleigh (21) Readings (8) Religion (66) San Francisco (87) Software (200) Blogs (74) Business (224) Cloud (89) Cool links (132) Security (98) Travel (201) Weather (688) Astronomy (84) Windows Azure (59) Work (54) Writing (8)
Links
Archive
<October 2014>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
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: 4513
This Year: 411
This Month: 26
This Week: 2
Comments: 0