Yesterday I showed Alfonso Soriano stealing third. Here's the result:
Man, those were great seats. $80 at Petco; $251 at Wrigley; $450 at New Yankee.
My last one this morning is the last one I took of Petco Park:
Now if only the Cubs had won...
The 30-Park Geas took me to Petco Park last night, where the 4th-place Padres beat the 4th-place Cubs:
I thought the park was OK. Like some of the other 21st-century parks, it seemed to lack character. It felt more corporate than, say, Camden Yards or even AT&T Park. The fans seemed to agree, as only about 27,000 showed up (out of a capacity of over 42,000.
But the lack of demand for seats let me get an 8th-row field box for under $80. And that, in turn, let me get photos like this one of Alfonso Soriano stealing 3rd:
Or this one of Travis Wood pitching:
I'm now up the coast, at my folks' house. More photos tomorrow.
I'm in San Diego for tonight's Cubs game. Both teams are near the bottom of their divisions, and both have had solid losing streaks lately, so this should be a fascinating game.
While here, I took the advice of one of my oldest-surviving friends—really, she'd inflict violence if I said how long we've known each other—and went over to Coronado for lunch at Alexander's Pizza. Good advice; it was one of the best slices of pie I've had in years.
Coming back, I couldn't help notice this passing by:
That is littorally huge an amphibious transport dock, the USS Green Bay, designed to carry a battalion of 800 marines hither and yon. Apparently it's heading home, to Naval Base San Diego.
If one of the developers on one of my teams had done this, I would have (a) told him to get some sleep and (b) mocked him for at least a week afterwards.
Saturday night I spent four hours trying to figure out why something that worked perfectly in my local Azure emulator failed with a cryptic "One of the request inputs is out of range" message in the Cloud. I even posted to StackOverflow for help.
This morning, I spent about 90 minutes building a sample Cloud application up from scratch, adding one component at a time until I got to the same failure. And, eventually, I got to the same failure. Then I stepped through the code to figure out
And I immediately saw why.
The problem turned out to be this: I have two settings:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="Cloud" ...>
<WebRole name="WebRole" vmsize="Small">
<ConfigurationSettings>
<Setting name="MessagesConfigurationBlobName" />
<Setting name="MessagesConfigurationBlobContainerName" />
</ConfigurationSettings>
</WebRole>
</ServiceDefinition>
Here's the local (emulator) configuration file:
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration ...>
<Role name="WebRole">
<ConfigurationSettings>
<Setting name="MessagesConfigurationBlobName" value="LocalMessageConfig.xml"/>
<Setting name="MessagesConfigurationBlobContainerName" value="containername"/>
</ConfigurationSettings>
</Role >
</ServiceConfiguration>
Here's the Cloud file:
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration ...>
<Role name="WebRole">
<ConfigurationSettings>
<Setting name="MessagesConfigurationBlobName" value="containername" />
<Setting name="MessagesConfigurationBlobContainerName" value="CloudMessageConfig.xml"/>
</ConfigurationSettings>
</Role >
</ServiceConfiguration>
I will now have a good cry and adjust my time tracking (at 3am Saturday) from "Emergency client work" to "Developer PEBCAK".
The moral of the story is, when identical code fails in one environment and succeeds in another, don't just compare the environments, compare *everything that could be different in your own code* between the environments.
Oh, and don't try to deploy software at 3am. Ever.
While trying to move a customer's app into the cloud yesterday (and well into this morning), I encountered a problem that doesn't make any sense. I now very much want to find the guys who wrote Microsoft Azure's error handling and punch them in their faces.
When you access an Azure storage container, you have to use only lower-case letters, or Azure will throw a StorageClientException with the thoroughly unhelpful message "One of the request inputs is out of range." So, in all the code I've written that uses Azure storage, it makes sure everything that needs to be lower-case is actually lower-case.
So why am I getting the exception now? No one seems to know.
Worse, the exception only happens in actual deployments, not in the Azure emulator (which you use to test your code on your own computer).
I hope to have this figured out soon. Because I'd really like to get some sleep.
Remember all those Azure migrations I've done over the past month? Well, I have another one that I wasn't expecting, and for a variety of reasons including a failed web server, it must be completed by Monday morning.
Remember I'm going to San Diego tomorrow? Good thing the airplane has WiFi.
And people wonder why I eat chalk a lot...
Sometimes things just work.
Last weekend, I wrote about moving my last four web applications out of my living room the Inner Drive Technology International Data Center and into the cloud via a Microsoft Azure Virtual Machine.
Well, if you're reading this blog entry, then I've succeeded in moving The Daily Parker. Except for transferring files (the blog comprises 302 megabytes over 13,700 files), which happened in the background while I did other things, it only took me about 45 minutes to configure the new installation and make the necessary changes to DNS.
Despite the enormous volume of data, this was the easiest of the four. DasBlog has no dependencies on outside services or data, which means I could move it all in one huge block. The three remaining applications will take much more configuration, and will also require data and worker services.
I'm still surprised and pleased with the smoothness of the transfer. If the other three migrations go anywhere nearly as easily as this (taking into consideration their complexities), I'll be an Azure Evangelist for years.
Lots of interesting articles hit my inbox today, and I don't have time to plagiarize write about them:
That is all. I really need to work now.
My latest missive for my employer, "When to use Microsoft Azure’s IaaS instead of PaaS", is now available on the 10th Magnitude blog. It's similar to a post from last weekend, but with better writing and editing.