The Daily Parker

Politics, Weather, Photography, and the Dog

Don't know much about history

As a person with a bachelors degree in history, this compilation of Republican ideas about history made me laugh. And cry:

1500s: The American Revolutionary War begins: “The reason we fought the revolution in the sixteenth century was to get away from that kind of onerous crown.”—Rick Perry

1619-1808: Africans set sail for America in search of freedom: “Other than Native Americans, who were here, all of us have the same story.”—Michele Bachmann

1812: The American War for Independence ends: “ ‘The Star-Spangled Banner’…that song—written during the battle in the War of 1812—commemorates the sacrifice that won our liberty.”—Mitt Romney

Oh, my eyes.

American, American, wherefore art thou American?

Deny thy boardroom and refuse thy chiefs,
Or if thou wilt not, be but sworn on-time,
And let the Cactus purchase you!

Sorry. For those joining our program in progress, "Cactus" is the callsign of US Airways, who are now in merger talks with the airline I fly all the time, American. Today American's pilots are trying to make that merger happen more quickly, but they have come to bury American, not to praise it.

American's pilots, who spurned management's "last best" offer before the company went into bankruptcy protection, have gotten surly that management has gone ahead with its rule changes anyway. Pilots picketed outside O'Hare yesterday, while coincidentally finding an unusual number of "maintenance problems" over the past few weeks that caused flights to be delayed or cancelled. This has dropped American's on-time rate to 54% and prompted a nervous but defiant Air Line Pilots Association to deny in a statement yesterday that this is a work action:

One area of increased operational unreliability we have observed is in mechanical delays, which isn’t surprising. Although American Airlines operates the oldest fleet of any major U.S. carrier, management has decided to furlough a large number of mechanics and close one of its largest maintenance facilities. Management also decided some time ago to reduce its inventory of spare parts.

In addition, management halted the recalls of furloughed pilots late last year, which has resulted in an insufficient number of pilots to maintain the schedule properly.

It’s also important to remember that management chose to reject the APA-American Airlines Collective Bargaining Agreement, which served as an operating manual for our pilots. Management’s action has generated significant uncertainty for our pilots with respect to employment protections and operating rules, which are now under management’s unilateral control.

APA members are experienced professionals who conduct themselves as professionals under whatever circumstances they encounter. Any negative impact on our airline’s operational integrity is of management’s own making.

I'm going to watch this closely, particularly while finalizing plans to visit the UK next month. I'm outbound from Atlanta on British Airways, and getting to Atlanta isn't a problem at all if American cancels tons of flights; but returning from the UK might be. Now, where did I put my Tums?

Update, 10:49am: The president of American's frequent-flyer program has just sent an email announcing some changes to the company's schedule through October: "We are proactively reducing the rest of our September and October schedule by approximately one to two percent. These schedule adjustments will enable us to provide our customers with more reliable service while minimizing impact to travel plans. Additionally, we are increasing staffing of maintenance, reservations and airport personnel to offer you more flexible travel options." Let's see how that affects my trip.

Link round-up

Before I forget, and get lost in my work again today:

All for now...

How the Cloud helps people sleep

Last night, around 11:30pm, the power went out in my apartment building and the ones on either side. I know this because the five UPS units around my place all started screaming immediately. There are enough of them to give me about 10 minutes to cleanly shut down the servers, which I did, but not before texting the local power company to report it. They had it on again at 1:15am, just after I'd fallen asleep. I finally got to bed around 2 after bringing all the servers back online, rebooting my desktop computer, and checking to make sure no disk drives died horribly in the outage.

But unlike the last time I lost power, this time I did not lose email, issue tracking, this blog, everyone else's site I'm hosting, or the bulk of my active source control repositories. That's because they're all in the cloud now. (I'm still setting up Mercurial repositories on my Azure VM, but I had moved all of the really important ones to Mercurial earlier in the evening.)

So, really, only Weather Now remains in the Inner Drive Technology Worldwide Data Center, and after last night's events, I am even more keen to get it up to the Azure VM. Then, with only some routers and my domain controller running on a UPS that can go four hours with that load, a power outage will have less chance of waking me up in the middle of the night.

Azure Web Sites adds a middle option

My latest 10th Magnitude blog post is up, in which I dig into Microsoft's changes to Azure Web Sites announced Monday. The biggest change is that you can now point your own domain names at Azure Web Sites, which solves a critical failing with the product that has dogged them from its June release.

Since this Daily Parker post was embargoed for a day while my 10th Magnitude post got cleared with management, I've played with the new Shared tier some more. I've come to a couple of conclusions:

  • It might work for a site like Inner Drive's brochure, except for the administrative tools lurking on the site that need SSL. Azure Web sites still have no way to configure secure (https://) access.
  • They still don't expose the Azure role instance to .NET applications, making it difficult to use tools like the Inner Drive Extensible Architecture™ to access Azure table storage. The IDEA™ checks to see whether the Azure role instance exists (using RoleEnvironment.IsAvailable) before attempting to access Azure-specific things like tables and blobs.
  • The cost savings isn't exactly staggering. A "very small" Web Role instance costs about $15 per month. A Shared-level Web Site costs about $10. So moving to a Shared Web Site won't actually save much money.
  • Deployments, however, are a lot easier to Web Sites. You can make a change and upload it in seconds. Publishing to a Web Role takes about 15 minutes in the best circumstances. Also, since Web Sites expose FTP endpoints, you can even publish sites using Beyond Compare or your favorite FTP client.

I did upgrade one old site from Free to Shared to move its domain name off my VM. (The VM hosted a simple page that redirected users to the site's azurewebsites.net address.) I'll also be moving Hired Wrist in the next few days, as the overhead of running it on a VM doesn't make sense to me.

In other news, I've decided to go with Mercurial for source control. I'm sad to give up the tight integration with Visual Studio, but happy to gain DVCS capabilities and an awesomely simple way of ensuring that my source code stays under my control. I did look at Fog Creek's Kiln, but for one person who's comfortable mucking about inside a VM, it didn't seem worth the cost ($299).

Chicago's digital infrastructure

Crain's Chicago Business yesterday ran the first part in a series about How Chicago became one of the nation's most digital cities. Did you know we have the largest datacenter in the world here? True:

Inside the former R.R. Donnelley & Sons Co. printing plant on East Cermak Road, next to McCormick Place, is the world's largest, most-connected Internet data center, according to industry website Data Center Knowledge. It's where more than 200 carriers connect their networks to the rest of the world, home to many big Internet service providers and where the world's major financial exchanges connect to one another and to trading desks. "It's where the Internet happens," Cleversafe's Mr. Gladwin says.

Apparently Chicago also hosts the fifth-largest datacenter in the world, Microsoft's North Central Azure hub in Northlake. (Microsoft's Azure centers are the 5th-, 6th-, 9th-, and 10th-largest in the world, according to Data Center Knowledge.) And then there's Chicago's excellent fiber:

If all of the publicly available fiber coming in and out of the Chicago area were bundled together, it would be able to transmit about 8 terabits per second, according to Washington-based research firm TeleGeography. (A terabit per second is the equivalent of every person on the planet sending a Twitter message per second.)

New York would be capable of 12.3 terabits, and Washington 11.2 terabits. Los Angeles and San Francisco are close behind Chicago at 7.9 and 7.8 terabits, respectively. New York is the primary gateway to Europe, and Washington is the control center of the world's largest military and one of the main connection points of the Internet.

Chicago benefits from its midcontinent location and the presence of the financial markets. "The fiber optic lines that go from New York and New Jersey to Chicago are second to none," says Terrence Duffy, executive chairman of CME Group Inc., who says he carefully considered the city's infrastructure when the futures and commodities exchange contemplated moving its headquarters out of state last year because of tax issues. "It benefits us to be located where we're at."

Now, if I can just get a good fiber to my house...

Virtuous circle of productivity

It seems that the more I have to do, the more I'm able to do. In other words, when I haven't got a lot of assignments, I tend to veg out more. Right now I'm on a two-week development cycle, with an old client that predates my current job anxious for some bug fixes. Oddly, the old client tends to get his bug fixes when I have more to do at my regular gig.

Of course, blogging might suffer a bit. In fact I just submitted a draft blog entry for the 10th Magnitude Developer Blog that should hit tomorrow sometime. Until then, it's embargoed (which I hate because it's a timely and useful topic), and I have a feature to finish.

I guess all of this means, with apologies to René Magritte, ceci n'est pas un blog post.

The Azure migration hits a snag with source control

Remember how I've spent the last three months moving stuff into the Cloud? And how, as of three weeks ago, I only had two more services to move? I saved the best for last, and I don't know for sure now whether I can move them both without some major changes.

Let me explain the economics of this endeavor, and why it's now more urgent that I finish the migration. And then, as a bonus, I'll whinge a bit about why one of the services might have to go away completely.

I currently have a DSL and a 20-amp power line going into my little datacenter. The DSL ostensibly costs $50 per month, but really it's $150 per month because it comes as an adjunct to my landline. I don't need a landline, and haven't for years; I've only kept it because getting DSL without a landline would cost—you guessed it—$150 per month. The datacenter has six computers in it, two of which are now indefinitely offline thanks to the previous migrations to Azure. Each server uses between $10 and $20 of electricity per month. Turning two off in July cut my electricity use by about $30. Of the four remaining servers, I need to keep two of them on, but fortunately those two (a domain controller and a network attached storage, or NAS, box) are the most efficient; the two hogs, using $40 of electricity every month, are my Web and database servers. I get to turn them off as soon as the last two services get migrated.

So we're already up to $190 per month that goes away once I finish these migrations, down from $220-230 per month three months ago (or $280-300 in the summer, when I have to run A/C all the time to keep it cool). I've already brought Azure services online, including a small virtual machine, and I signed up for Outlook Online, too. Together, my Azure and Office 365 services, once everything is moved, should cost about $120-130 per month, which stays exactly the same during the summer, because Microsoft provides the air conditioning.

The new urgency comes from my free 90-day Azure trial expiring last week. Until then, all my Azure services have been free. Now, I'm paying for them. The faster I finish this migration, the faster I get to save over $100 per month ($180 in the summer!) in IT expenses—and have much more reliable services that don't collapse every time AT&T or Commonwealth Edison has a hiccup in my neighborhood.

Today, in the home stretch with only Vault and Weather Now left to move, it turns out I might have to give up on Vault completely. Vault requires integration between the Web and database servers that is only possible in Vault if they're running on the same virtual network or virtual machine.

I want to keep using Vault because it has my entire source control history on it. This includes all the changes to all the software I've written since 1998, and in fact, some of the only copies of programs I wrote back then. I don't want to lose any of this data.

Unfortunately, Vault's architecture leaves me with only three realistic options if I want to keep using it:

  • Keep the Web and database servers running and keep the DSL up, obviating the whole migration effort;
  • Move the database and Web services to the domain controller, allowing me to turn the servers off, which still leaves me with a $155 per month DSL and landline bill (and puts a domain controller on the Internet!); or
  • Upgrade the my Azure VM to Medium, doubling its cost (i.e., about $60 more per month), then install SQL Server and Vault on it.

None of these options really works for me. The third is the least worst, at least from a cost perspective, and also puts a naked SQL Server on the Internet. With, oh yeah, my entire source control history on it.

So suddenly, I'm considering a totally radical option, which solves the cost and access problems at the expense of convenient access to my source history: switch to a new source control system. I say "convenient access" because even after this migration, I have no plans to throw away the servers or delete any databases. Plus, it turns out there are tools available to migrate out of Vault. I'll evaluate a few options over the next two weeks, and then do what I can to migrate before the end of September.

Not to mention, it looks like Sourcegear may be re-evaluating Vault (as evidenced by a developer blog that hasn't changed in over a year), possibly for many of these reasons. Vault was developed as a replacement to the "source destruction system" Microsoft Visual SourceSafe, and achieved that mandate admirably. But with the incredible drop in cloud computing prices over the past two years, it may have lived long enough already.

As for the final service to migrate, Weather Now: I know how to move it, I just haven't forced myself to do it yet.

Could 2013 finish the Geas?

I've banged away at the 30-Ballpark Geas for four seasons now, long enough for three new parks to spring up since I started. Next weekend I'm visiting Cincinnati, the 24th park, leaving eight to go. (Citi Field and New Yankee Stadium got added to the list because they replaced parks I visited before finishing the Geas. The third new park, New Marlin Ballpark, replaced one I hadn't ever visited before, and therefore wasn't already ticked off only to be un-ticked by new construction.)

With the MLB 2013 Schedule released ridiculously early this week, a path forward has presented itself. Barring rain, war, or other unpredictable misfortune, here's the likely End of the Geas, five years after it began:

City Team Park Built Potential visit
Toronto Blue Jays AL Rogers Centre 1989 2013 May 3
New York Yankees AL New Yankee Stadium 2009 2013 May 4
Seattle Mariners AL Safeco Field 1999 2013 Jun 30
Oakland Athletics AL O.Co Stadium 1966 2013 Jul 2†
Colorado Rockies NL Coors Field 1995 2013 Jul 21†
Arizona Diamondbacks NL Chase Field 1998 2013 Jul 22†
Texas Rangers AL Rangers Ballpark 1994 2013 Jul 23
Minnesota Twins AL Target Field 2010 2013 Aug 17
St. Louis Cardinals NL Busch Stadium 2006 2013 Sep 28†

† vs. Cubs

The trip to O.Co in July is a bonus game, added simply because the Cubs have never played there before, and going to the West Coast would likely result in a stop to see the family regardless.

So, there it is: An early-season road trip to Toronto and New York; a mid-season West Coast trip followed by a triangle trip through the Great Plains; sneaking in a quick overnight trip up to Minneapolis; and ending at the home of the Cubs' ancient rivals, the Cardinals.

The Cubs might even win one or two of those games...