The Daily Parker

Politics, Weather, Photography, and the Dog

Troubleshooting software installation on Windows 7

I have just spent an hour of my life—one that I will never get back—trying to figure out why I couldn't install any software from .msi files on one of my Windows 7 machines. Every time I tried, I would get a message that the installer "could not find the file specified."

I'll spare you all the steps I went through to figure out why this was happening, and get to the punchline:

>

Yeah, you see, the SYSTEM account needs full control over any file you're trying to install on Windows. Here's how it should look:

So, if you're a security-conscious individual who's locked down his PC thoroughly, and you can't seem to install anything on Windows anymore, check the permissions on the folder containing the .msi file.

As we say in programming: herp-a-derp.

Out of the apartment, into the cloud (Part 2)

Last weekend I described moving my email hosting from my living room home office out to Microsoft Exchange Online. And Thursday I spent all day at a Microsoft workshop about Windows Azure, the cloud computing platform on which my employer, 10th Magnitude, has developed software for the past two years.

In this post, I'm going to describe the actual process of migrating from an on-site Exchange 2007 server to Exchange Online. If you'd prefer more photos of Parker or discussions about politics, go ahead and skip this one. It's pretty technical and Parker only makes a brief cameo.

About 18 months ago, 10th Magnitude's CTO tried to move us to the predecessor offering now replaced by Exchange Online and Office 365's, Business Productivity Online Suite, AKA "BPOS." He was quite adamant that BPOS was a CPOS, and made just setting up the service a complete PITA. I'd like to assure him and everyone else thinking about cloud-based email that the situation today has improved.

The new migration tools start you with a step-by-step checklist, liked to all the documentation you need, that takes you through the entire process:

Step 1 took fifteen seconds. I called my dad and told him I was moving his email account to a different server, and that he probably wouldn't even notice the change except his password would change. He said fine. That was easy.

Step 2 was to add my domains to Exchange Online. My existing Exchange organization hosted eight domains, which it had acquired over the 12 years or so I'd run development servers in my office. Each domain required going into my DNS registration account at DNS Made Easy and adding a TXT records proving I owned it. Fortunately, my DNS provider and Microsoft communicated in real time about the updates, so I got through 7 of 8 domains in about 10 minutes. The 8th domain, which unfortunately was the Active Directory root domain, had its nameservers pointed at the DNS registrar that I used before switching to DNS Made Easy. Switching nameservers took an entire day, for reasons that pass understanding.

Step 3, mailbox migration, had a few hiccups, and required about more effort than I anticipated. First, using the Remote Connectivity Analyzer, I discovered that the specific combination of DNS records, firewall rules, and mailbox configuration on my Exchange server wouldn't allow migration. It took about two hours of playing whack-a-mole to get just one of the tests in the suite to work. Microsoft provided (generally) comprehensive instructions on how to fix the problems I encountered, however. The test suite itself gave me a good idea of what I was doing wrong on its own, even without the TechNet articles.

The remaining steps in the plan—redirecting mail to the new server, completing the mailbox migration, activating users, and starting to use Exchange Online—took about fifteen minutes. Seriously.

The whole effort took six hours total. Part of this includes the post-move configuration changes I had to make to several services and Web sites, as my Exchange server was also my internal SMTP server. This blog, all of my hosted websites, and the collection of services that support those websites (like Weather Now, for example) all had to have a new SMTP server to send emails out. That was a little tricky, and required using IIS6 tools on a Windows 2008 server. But that's another story.

Also, my RSS feeds didn't fare well in the switch. With Exchange 2007 and Outlook 2010, your RSS feeds are stored on the server, not the client. So I had to add all of them back by hand after the migration.

It's important to note a few things that would make this more difficult for a larger business than mine. I had two active mailboxes for people and a couple for support services, I controlled both the Exchange server and the network, and I had no critical business issues during the switch. Larger organizations will have to handle a migration much more carefully than I did.

In the end, my email experience is exactly the same. And my apartment home office is noticeably quieter with two fewer servers gobbling electricity.

Cloud email working fine; Azure symposium today

The email migration I did over the weekend so far has made my email experience better, in part because the server rack temperatures have dipped a full degree C (despite really hot weather outside). More details about the migration will follow this weekend.

Since 10th Magnitude has become a 100% Azure shop, Microsoft has invited us to participate in an all-day summit here in Chicago about the Azure cloud-computing platform. I'm leaving for it anon; I'll report this, too, weekend.

Out of the apartment, into the cloud (part 1)

Before coming to 10th Magnitude, I was an independent consultant, mostly writing software but occasionally configuring networks. I hate configuring networks. And yet, since 2008, I've had a 48U server rack in my apartment.*

A “U” is 25mm, so this means I have a 1.2 m steel rack behind an antique dressing screen in my living room home office, which sits between my dining room and my bedroom in a compact apartment in Chicago:

It looks modest enough, yes?

On the server rack are three 2U and one 1U rack servers. Behind the server rack is an old desktop box that got drafted for server duties. All of these machines have cooling fans that whirr constantly. Under the servers are the routers, uninterruptible power sources, and wires that connect the servers with the rest of the world:

I spent about $10,000 on the servers and the rack in the last decade. All of the servers are nearing the ends of their lives—the newest is from 2008—and need replacing soon. Plus, every month since then they've used about $90 per month in electricity. They need air conditioning, too, which costs another $30 or so in the summer beyond what I'd spend on my own comfort, because the bastards create a lot of heat.

Imagine my glee when, about two weeks ago, Microsoft began offering a new configuration for its cloud-based Azure platform that dropped the price of moving (most) websites into the cloud under $15 per month. That, combined with the onset of summer in Chicago, pushed me over the edge. I am now committed to getting the server rack out of my house by the end of September. This will accomplish three things:

  • It will cost less;
  • It will be quieter; and
  • Someone else can deal with the hardware and network maintenance.

I’ve already started. Over the weekend I moved my email to Microsoft Exchange Online, which costs $4 per month per mailbox, and so far works better than my old Exchange server. As just one example, if the power goes out in my apartment while I’m traveling, I won’t lose email connectivity.

Tomorrow I’ll describe the process in detail. Spoiler: the only thing that made me swear was getting my mobile phone connected.

* Before 2008, the rack was in my office in Evanston. I didn’t want to keep the office when I moved to Lincoln Park, so the servers moved in with me "just to save money." Never a good idea.

Why office dogs are awesome, cont'd

Because they improved downtown L.A. immensely:

In 1999, Los Angeles passed its Adaptive Reuse Ordinance, making it easier and cheaper for real estate developers to convert old offices to new housing. While the ordinance arguably jump-started the revitalization of downtown L.A., a key (though overlooked) element was pet-friendly policies in these newly converted lofts.

Walking dogs drove residents out of their homes and into the street at least twice each day. Elsewhere in Los Angeles, where single-family homes predominate, dog owners often have the luxury of sending Fido out to the yard to do his business. But downtown, dogs and their owners have become a crucial component of the rebounding neighborhood's culture.

Of course, if the office dog poops on the CEO's carpet, he'll still get fired.

Groupon shares decline to saner levels

As just about everyone who watches these things predicted, Groupon's shares declined 9% just as soon as insiders were able to start trading them:

Friday marked the end of the company's lock-up period, which prevented insiders from unloading their Groupon stock. Groupon went public in November with a small float. The expiration of the lock-up period puts into play 600 million shares, amounting to 93 percent of the company's total outstanding shares. About one-third of those shares will not be sold, as they are in the hands of co-founders Andrew Mason, Eric Lefkofsky and Brad Keywell. Mason, who is also chief executive, said last month that the trio had no intention of selling their holdings.

Analysts had said they expected downward pressure on Groupon's shares as a result of the lock-up expiration but that many insiders -- a group that includes current and former senior executives, board members and early investors -- would hang onto their stock to wait for a rebound in the price. While Groupon's shares rebounded last month after the company reported first-quarter earnings, they remained well below their IPO price of $20.

Why did Groupon even have an IPO? Probably for the same reason Facebook did: to enrich the VCs and founders. That's easy. But why did anyone buy Groupon at $20 or Facebook at $38? Because math class is tough, but history is tougher, apparently.

Two IPOs, one story

At dinner last night with some of my B-school friends, conversation turned to the two most perplexing stock offerings of the last year: Facebook's and Groupon's. In both cases, the companies' very young owners and very rich venture capital investors got rich, but what happened after that? Here's Facebook's performance this week:

And Groupon's:

This morning, Groupon announced a proposed settlement in the class-action suit accusing them of practicing their well-known business model:

If you purchased or received a Groupon Voucher issued for redemption in the United States between November 1, 2008 and December 1, 2011, then you are a member of the class (“Class Member”) for purposes of this class action settlement, and may be entitled to receive settlement benefits, unless you are one of the following: (1) an employee of Groupon, Inc.; (2) a business with whom Groupon has partnered to offer Groupon vouchers (“Merchant Partners”); or (3) a parent company, subsidiary, affiliate or director or officer of Groupon or a Merchant Partner.

Facebook has its own problems. It's been a public company for less than three days, and already the SEC is investigating. Where they go, lawsuits surely will follow:

[R]egulators are concerned that banks may have shared information only with certain clients, rather than broadly with investors. On Tuesday, William Galvin, the secretary of state in Massachusetts, subpoenaed Morgan Stanley over discussions with investors about Facebook’s offering. The Financial Industry Regulatory Authority, Wall Street’s self-regulator, is also looking into the matter. The chairwoman of the Securities and Exchange Commission, Mary L. Schapiro, said Tuesday that the agency would examine issues related to Facebook’s I.P.O., but she did not elaborate.

Morgan Stanely, the banker in question, led both the Groupon and Facebook IPOs.

At least they didn't lose $2 billion last week gambling with money insured by us taxpayers.

Whither Lorem Ipsum?

Jeff Atwood has the definitive explanation:

["Lorem ipsum"] is arbitrarily rearranged and not quite coherent Latin, extracted from a book Cicero wrote in 45 BC. Here's the complete quote, with the bits and pieces that make up Lorem Ipsum ....

Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem ipsum, quia dolor sit amet, consectetur, adipisci[ng] velit, sed quia non numquam [do] eius modi tempora inci[di]dunt, ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla pariatur?

At vero eos et accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque corrupti, quos dolores et quas molestias excepturi sint, obcaecati cupiditate non provident, similique sunt in culpa, qui officia deserunt mollitia animi, id est laborum et dolorum fuga.

But what does it all mean?

He even included a lengthy list of websites that have tons of the stuff hanging around.

Quod erat demonstrandum.

Mama don't let your boys become coders

I agree with Jeff Atwood that learning to code isn't really a good goal:

The "everyone should learn to code" movement isn't just wrong because it falsely equates coding with essential life skills like reading, writing, and math. I wish. It is wrong in so many other ways.

  • It assumes that more code in the world is an inherently desirable thing. In my thirty year career as a programmer, I have found this … not to be the case. Should you learn to write code? No, I can't get behind that. You should be learning to write as little code as possible. Ideally none.
  • It assumes that coding is the goal. Software developers tend to be software addicts who think their job is to write code. But it's not. Their job is to solve problems. Don't celebrate the creation of code, celebrate the creation of solutions. We have way too many coders addicted to doing just one more line of code already.

He concludes:

Please don't advocate learning to code just for the sake of learning how to code. Or worse, because of the fat paychecks. Instead, I humbly suggest that we spend our time learning how to …

  • Research voraciously, and understand how the things around us work at a basic level.
  • Communicate effectively with other human beings.

These are skills that extend far beyond mere coding and will help you in every aspect of your life.

We can't hear this enough. It's why I tend to hire liberal arts majors who can code rather than computer science majors who can read.