Jan 4 10

The so-called “God Mode”

by Brandon

A rather goofy “trick” has been making the rounds over the last couple days, which was described by Ina Fried on CNET as follows:

By creating a new folder in Windows 7 and renaming it with a certain text string at the end, users are able to have a single place to do everything from changing the look of the mouse pointer to making a new hard drive partition.

Apparently people decided to call this “God Mode” because to enable this “trick” you make a folder called GodMode.{ED7BA470-8E54-465E-825C-99712043E01C} and double-click on it.  Now you can see… the control panel.  With a slightly different view than you normally see it in.

So first off, why is this completely silly?  Well, the text ”GodMode” has nothing to do with making the trick work.  You can call the folder “ILikePuppies.{ED7BA470-8E54-465E-825C-99712043E01C}” and now you’ve discovered the magical “ILikePuppies” feature hidden in Windows.

Well, not really.  What you’ve actually discovered are two things:

First, you’ve discovered a documented feature of the shell whereby filesystem folders can be easily made into namespace junctions, as described here on MSDN.  Basically, any folder named <DisplayName>.<CLSID> will show up with just the <DisplayName> portion visible in Explorer, and navigating into the folder will take you to the namespace root defined by the <CLSID> portion of the name.  This isn’t a user feature, it’s a developer feature.

The second thing you’ve discovered is the “All Tasks” folder.  This is a special shell folder which is used as the source of the “Control Panel” search results seen in the Start menu.  This folder was not designed to be browsed to directly, as the normal Control Panel folder (accessible via Start -> Control Panel) contains all the same items but with a custom view designed to be easier to navigate.  The “All Tasks” folder has no custom view, so you just see the standard Explorer list view and little else.

The existence of this folder and its CLSID are implementation details and should not be relied upon by anybody for any purpose*.

God Mode?  Hardly.

Props to Ed Bott for his earlier post about this “trick.”

* = Update: The intended meaning of this statement was, “please don’t use this folder / CLSID in your app for anything, since it will probably break in the future.”  If you like using this view and are happy with an unsupported untested trick for your own personal use, then by all means, enjoy it.

Dec 30 09

What does age mean in the tech world?

by Brandon

Mary Jo asks:  “At Microsoft, is age more than just a number?”

In the responses to her post I saw a few comments along the lines of, “ageism happens, get over it.”  One commentor wrote:

“Truthfully, younger Folk will just not like you, simply because of your age, and in the workplace that has insidious ways of working against you no matter how good you are.”

This is completely counter to my experience.  If I ever had any preconceptions about how “with it” the older / more senior folks at Microsoft were, it didn’t take long for them to be washed away when I actually started working there.  In fact, one thing I love about my job is how closely I’m able to work with incredibly bright people who’ve learned so very much over their years in the industry or at the company.  I take every chance I get to learn from their experience. 

Yes I (and other younger folk) could shut them out and spend 20 years learning the same lessons the hard way, but that’s a terrible waste of the evolutionary gift that’s done the most to set our species apart from every other – our ability to pass on knowledge and experience from one generation to the next.

If you ask one of the people Mary Jo calls Millenials (which I read as ”you kids”), I’m sure most of us would be happy to extole the virtues of young engineers.  Today’s college grads know what it’s like to grow up with their own PC and cell phone.  They’ve probably gleaned a lot just from seeing their parents and teachers work with technology.  Their social paradigms have changed – many won’t know what it’s like to lose touch with friends from college or high school after they graduate and move away… they’ve got Facebook to automate the previously daunting task of keeping tabs on dozens or hundreds of people you’ve known.  Their world is smaller, their stages of life more connected with fewer seams. 

But the truth is you don’t have to be born in the 80s or 90s to understand these things.  I bet you Steve Jobs does, and he’s 54.  As much as the world has changed over the last couple decades, a heck of a lot has stayed the same.  Sure, maybe kids these days date differently, but I’m willing to bet that looking for ways to minimize your vulnerability and potential for embarassment is nothing new.  The medium is all that’s really changed.  You don’t have to be young to notice these trends or to empathize with young customers.  The best creative minds in any industry need to be able to put themselves in their customers shoes, whether you’re designing for someone 20 years your junior or 30 years your senior.

So I guess mine’s a two-part answer.  First, if you’ve got experience, it can be a tremendous benefit to you and to those with whom you share it.  Second, the ability to empathize with and understand others is an invaluable skill at any age.

As always, this is all just my personal non-corporate-approved perspective and may not reflect the experience of anybody anywhere (at Microsoft or otherwise).

Dec 13 09

Two weeks with a Droid

by Brandon

A couple weeks ago I made a rather impulsive decision to purchase a Motorola Droid with a new Verizon account.  The frustrations I’ve had with AT&T have been piling up for a while now… dropped calls, slow-to-respond data services, zero service in crowded places, and horrible customer service problems (such as being lied to and not being able to upgrade to a 3GS), to name a few.  Add to this my total inability to use their data service near San Diego over the week of Thanksgiving and their apparent lack of desire to actually fix these problems, and you’ve got quite a number of straws on this camel’s back.

I didn’t quit AT&T cold turkey, though.  In fact, I told myself this was an experiment to see how a different network and device might work for me – knowing that I could cancel within 30 days and return the phone itself for a refund.  Instead of porting my AT&T number, I left it active on the iPhone, and began directing friends and family to use my Google Voice number for calls and SMS, which I pointed at the new Verizon phone.  I also set my iPhone to forward calls to that number.

If you’re anxious to hear the result of this experiment, it’s this:  I am cancelling my AT&T account and going to try tomorrow to port my old number to the new Verizon account (something I hope is possible, but I’m okay if it isn’t).  For more details about this decision, read on as I dive into three topics: the phone, the network, and Google Voice.

1. The phone

First off, I must make it clear that the Droid doesn’t do everything as well as the iPhone.  The hardware isn’t as pretty.  The default software isn’t as nice.  Text selection isn’t as nice as iPhone or even WinMo.  Some apps I really liked on the iPhone are still missing (Kindle, Urbanspoon, OneBusAway).  Some apps like Facebook don’t compare.  Next to the iPhone, the built-in media experience is pretty awful. 

But there are a lot of things it does better.  It has a hardware keyboard which is a win for most people, though I find myself using the software keyboard out of habit which I actually like better than the iPhone’s.  It’s mostly the same but adds text prediction and is smarter about letting me fix its mis-corrections.

IMG_0503

The screen is gorgeous.  The camera (with flash) is way better.  The software is highly customizable.  I can run apps in the background and the OS has central management of apps that sync (including the Facebook app, Twitter app, mail apps, etc).  Push Gmail is automatic. There are lots of great apps like Twitdroid and Google Sky Map, and many iPhone staples like Pandora, OpenTable, Flixster, Bump are around too.   Many of them, like Pandora and Qik, are far more functional. I can have Pandora playing in the background while I do other things.  I can stream video to Qik over the 3G connection.  There’s even an app in the Android Market for tethering over USB or Bluetooth (though I wonder if Verizon will have something to say about that soon).

The OS itself does a lot right too.  A common theme seems to be central management of app behaviors – like syncing, notifications, and even power usage.  The first time the Droid got to 15% power it offered to show me which apps and settings were draining my battery!  Who knows if it’s totally accurate, but man was this helpful.  At one point it helped me identify a widget I’d installed which apparently had a bad battery-draining bug.  Good stuff.

The built-in Maps and search features are awesome.  Google Latitude is pretty well integrated (much more useful than it was on the iPhone), as is a pretty effective voice search.  Finally, the Droid earns high marks from me for its Google Voice integration.  More on that below.

When I got the phone I was concerned about a few specific problems, including reports from people I talked to that they heard an echo during every conversation.  A quick look around the web revealed that this was a known issue (with a workaround which worked).  This problem was eliminated a few days ago when the OS 2.0.1 update was pushed to Droid users.  That update brought several other improvements, including an improved lock screen and some performance, battery, and reliability improvements.  Thus far my experience has been that this update is how the phone should have shipped originally.  But that’s not necessarily a knock against Google / Motorola / Verizon, since everybody seems to be shipping not-quite-finished software these days… In fact, the speed and ease with which they deployed a solid first “service pack” via an Over The Air update was impressive.

2. The Network

Verizon’s network, at this point, has proven vastly superior to AT&T’s.  While it feels like the number of “bars” I have is often lower, it doesn’t seem to matter.  The iPhone would say 5 bars but still fail to make calls, drop them half way through, or completely fail to establish a data connection.  When the data connection did work, it was very rarely as fast as it could / should be.  And latency always seemed to be a major problem.

On Verizon, I consistently get a responsive data connection.  I know that when I click my shortcut to the WS-DOT bridge traffic map that I’ll be seeing it in a few seconds.  On the iPhone 3G with AT&T, I’d often wait nearly a minute for it to begin loading, or have to try several times to get it to load at all.  Getting Twitter or Facebook updates on the iPhone was hit or miss.  Twitter apps would regularly return obscure connection errors, and the Facebook app would often require several attempts to upload a photo (trying to do this from a crowded place like a soccer game was basically impossible).

3. Google Voice

When Michael Arrington talked about the Droid with the Gilmor Gang, he raved about its integration with Google Voice.  I decided to give this a shot, and while I’m not sure its as big of a revolution as he suggested, I do see what he was on about.  The Droid + Google Voice together feel like a truly natural evolution of the mobile experience.

So what does it do?  Well, a Google Voice number is sort of like a domain name on the web.  You pick the area code and number (from the available ranges) that you want to use as your public alias, and then point it at a destination (via the device’s phone number, which is now more like its IP address).  You can choose multiple destinations (if you don’t answer one device, it can ring another), or you can change where it points on the fly.  SMS messages and voice mails arrive on the Google Voice web site at no cost, and can be accessed via a web browser or through a Google Voice application like the one for Android phones.  For “legacy” devices you can have it immediately forward messages via traditional SMS.  But with the Droid this isn’t necessary, you can just use the Google Voice app instead of the SMS app and not even know the difference (except that you don’t have to pay for SMS and can read or respond to them on the web).

In the end, it’s not a revolution as Arrington may make it sound, but it is an improvement.  With a phone like the iPhone it’s hard to imagine why Google Voice is useful.  It’s complicated to use it as your number because when you call people using the phone’s dialer, they see your device’s real number instead.  And Apple won’t even approve the Google Voice dialer app.  Same goes for text messages.

But on the Droid, there are no such restrictions from Apple / AT&T.  The Google Voice app takes over your dialer, so any calls you make come from that number.  It’s a largely seamless experience.  I say “largely” because the SMS experience could still be a little better integrated (perhaps by having GV push the messages into the phone’s native SMS app), and they don’t quite have the sync / push experience nailed down for them, but it’s nearly there and I’m confident it will be all the way there soon enough.

Overall verdict

As I mentioned before, I’m keeping the Droid and Verizon.  But there are a few caveats to be aware of.  I would NOT recommend one for non-techies like my girlfriend (who currently uses an iPhone 2G on T-Mobile) or my sister yet.  At least not to replace an iPhone.  Why?

Some of what the Droid does right it also does wrong.  The Droid (and more the Android platform as a whole) is built for a world that most people don’t quite live in yet.  That’s a world where you never need to connect your phone to your computer.  Don’t get me wrong, this is where things are going, I have no doubt about that.  But it’s not where things are, for most people.

Let’s look at one specific scenario: pictures.  First off, the phone has no concept of syncing pictures (or other media) to it.  In fact, if you plug the USB cable into your computer nothing happens.  As far as I can tell there’s no management software like iTunes for it.  It doesn’t even mount itself as a drive unless you push a button on the phone’s screen once it’s connected.  Because of this, there is no sync feature, so no process by which properly sized and thumbnailed images get copied to the device.  Instead you can mount the storage card and drag images to a folder on the device’s SD card, but the first time you go to view them they’ll take a while to load and have thumbnails generated.  Not a pleasant experience.

I doubt Google sees this as a flaw, though.  Copying or syncing media to your phone isn’t something you’re meant to do in the Google world.  Instead you’re meant to consume media “from the cloud” using the appropriate app or mobile web site.  For photos ,there are dozens of apps for interacting with Picasa, Flickr, Facebook.

For now, the iPhone has the advantage here.  It has a fantastic experience for locally synced media, while enabling lots of cloud-based scenarios like viewing and uploading Facebook photos.

The iPhone also has the advantage when it comes to a simple, intuitive user experience.  The Droid experience is good, but requires a lot more customization to really make it shine, in my opinion.  The iPhone just works.  If not for AT&T’s widely publicized failings, I would say that the iPhone is the best choice for a normal human.  But the reality is that AT&T’s network has been getting worse, not better.  That alone may be enough to justify a different choice, and the Droid is a perfectly sensible one.  Just make sure there’s a geek around to set it up for you.

Dec 3 09

New Google home page. Is this for real?

by Brandon

A recap of what went through my mind yesterday as I read the Official Google Blog post about their new home page design and tried out the “updated” page:

- Is this a joke?
- This is terrible.
- If this is real, why is this Google person so excited about it?
- Marissa Mayer wrote the blog post?!?

What am I missing here?

Update: A Googler stopped by the comments section to point out that the post is actually credited to three people, not just Marissa.  I missed that on my first reading.  Thanks to Darren for bringing that to my attention.

Also, what do you think of the new “fade in on mouse movement” behavior? 

Oct 29 09

When version checks go wrong

by Brandon

Ars Technica’s review of Windows 7 is extensively detailed and contains a lot of good information.  But one piece jumped out at me, and that was this paragraph on the last page:

If Vista had gotten the reception it actually deserved, and become a brand worth keeping, it seems highly likely that the name would have been retained. And Microsoft knows it, which is why internally, Windows 7 is only version 6.1. Sure, the company has made specious claims that this is to avoid breaking applications with bad version checks, but the logic doesn’t really hold; many of those applications are just as broken by “6″ as they would be by “7,” and if that were such a concern then the minor version wouldn’t change either.

This might make sense to a lay person on a cursory reading, but as usual with software development, reality is full of subtle but important complexities. 

Pop quiz

Consider the following rather common version checking mistake:

// Our app is designed for XP (5.1) and later
if (majorVersion >= 5 && minorVersion >= 1)
{
    // Succeed
}
else
{
    // Fail
}

Given the returned version values from Windows XP (reports 5.1), Windows Vista (reports 6.0), and Windows 7 (reports 6.1) – which OSes will this program succeed on?

Oct 22 09

Windows 7 released!

by Brandon

As of today, Windows 7 is officially the latest commercially available operating system from Microsoft.  That’s a pretty cool thing for me in several ways.  First of all, when discussing Windows 7 over the last few months I’ve had to add the caveat “and it’ll be available toward the end of October.”  On several occasions I’d come close to forgetting that Windows 7 wasn’t already released since my work on it has largely been done for a while and all the people I work with have been running it for months (if not longer).  At last I can tell people not only how excited I am about Windows 7, but also that they can go check it out or buy it right now.  That’s pretty cool.

Another thing that’s pretty cool is realizing how fast it all seemed to happen.  When I first joined the Windows Experience team at the beginning of Windows 7 I was a bit nervous about working on such a large project with a timeline that seemed near to an eternity .  I feared that I’d get bored or that the work would drag on and on, and that in the end I’d just be dying to be done.  Instead, the time flew by and it was fun.  What’s more, our team planned and executed the release so well that it never felt like we needed to scramble to meet a deadline.  We even somehow managed to avoid another common pitfall of always wanting to add “just one more thing.”  Instead of feeling like it took too long or that we ran out of time to do everything I wanted, this release feels pretty darn close to “just right.”  And the experience has given me unending optimism for the work our team will do going forward.

Anyway, what does this all mean for you?  Well, for starters you can…

Visit your local computer store like Best Buy or Fry’s and check out dozens of awesome new Windows 7 PCs.

Buy Windows 7 or Windows 7 PCs from the new Microsoft Store.

Check out amazing new machines like the Dell Adamo XPS

Read LifeHacker’s complete guide to all things Windows 7

Have you tried Windows 7 yet?  Will you be buying an upgrade or a new Windows 7 PC this holiday season?

Oct 22 09

Windows 7 demos in 7 seconds

by Brandon

Cool new Windows 7 ads.

Oct 12 09

Can I bill Chase for my time fixing their problem?

by Brandon

If it seems like my blog has turned into a forum for me to vent my frustrations, I apologize.  I’ll make more useful posts soon to make up for it, I promise.  But in the meantime…

Last month I traded in my car.  This involved having the dealer pay off the remainder of my auto loan which was financed through Chase.  The dealer told me it would be paid off, the account would be closed, and I wouldn’t have to worry about it any more.  Sure enough, the Chase website soon showed my account as closed and paid off.  Great, right?

Well, Chase decided last week to withdraw my usual monthly payment amount from my checking account despite the fact that the account was paid off.  Apparently their auto-pay system isn’t smart enough to know it shouldn’t draw payments when there’s no balance.  Ridiculous to be sure (in the past I’d used Audi Financial and they never had this problem), but I expected I’d just call them and they’d make it right.  After all, the payment shows up on my Chase.com page, complete with a transaction number.

Unfortunately it isn’t that simple.  They’re insisting that I mail or fax bank records and web site screenshots “proving” that the funds were deducted from my account, even though their own website clearly has a record of the transfer.  On the phone they gave me the run around with nonsensical explanations about how they can see all my other payments including the loan pay-off transfer, but not this additional erroneous payment because of “security reasons.”  They refuse to accept any of these details via e-mail or over the phone, and insist that I write a “cover letter” explaining the situation with all of my account details.

This is positively absurd.  If their system didn’t clearly have a record of the transaction I’d be more forgiving, but it knows it transferred the money.  It knows the date and time and has a transaction number!  Apparently that number is useless, and might as well just be a made up figure, according to the server reps I’ve spoken to.

So my question is this… after two 10+ minute phone calls, the time it takes to prepare a “cover letter,” and the time and effort to find access to a fax machine (heck I don’t even have a phone line), can I bill Chase for my time?  What about charging interest?  They’ve obviously been generating interest on my money which they essentially stole from my account.  Has anyone had experience with situations like this?  Is there any viable recourse that will make up for my lost time and money while also perhaps encouraging Chase to get their act together?

Oct 10 09

Office move 2009

by Brandon

Yesterday afternoon some long awaited details about my team’s upcoming office move made their way out to the team.  At Microsoft, it’s a common practice to divvy up offices based on seniority – meaning those who have been at the company the longest get the first shot at window offices, and those who are newest get the last choice (often this means farthest from a natural light source).  Note that seniority in this context does not include factors like level / title or where you are on the management hiearchy (though I’m sure there’s some point on the way up where you’re able to “pull rank”).  For example, I am not a manager but I’m higher on the office allocation list than one of our development leads who joined the company 6 months after I did.

As a result of all this, when word of an office move arrives it is a safe bet that at least half the team will immediately begin compiling their own personal seniority list.  The goal of course being to see where they fall and estimate their chances at a window office.  Among the colleagues I share a hallway with, yesterday’s list compilation was group effort.

It occured to me that a lot of effort is duplicated at times like this.  For example, I’ve heard that each team’s admin was working feverishly on various logistics for the move, including compilation of just such a seniority list.  I began to wonder if there were any crafty admins out there who indirectly delegate this task by simply walking the hallway roughly 20 minutes after the move announcement is sent out and appropriating one of the various excel spreadsheets the team members had invariably just produced.

A bit of trivia:
In my roughly 4.5 years at Microsoft I have occupied 8 office locations.
Most of my office moves roughly correspond with a change in manager.
The longest I stayed in a particular office (my current one) was 1.5-2 years.
The shortest was about a month.
My office history includes being doubled up in an interior office, sitting in a “shared workspace” environment (basically a big room with about 8-10 fancy / large cubicle setups and a big common area with a projector and conference table), having rather nice window office for a few months, and most recently having a more run-of-the-mill interior office.

This time around, I fell exactly at the middle of the seniority list.  Most likely this means I’ll have my pick of non-window offices. 

Additional trivia:  The gap between me and the most senior person on the team is about 15 years.

Sep 18 09

AT&T rant. Giving up on getting an iPhone 3G S.

by Brandon

I think I’m giving up on trying to get a iPhone 3G S.  In fact, I’m really tempted to ditch AT&T altogether and get one of those fancy new Windows Phones coming out next month on Verizon or Sprint.  Why?  Well, AT&T’s sales / service people have been extraordinarily awful since my iPhone was stolen back in February.

When I went to get my phone replaced, I was informed that I would have to pay the “full price” for a new phone since I had just used my upgrade eligibility to get the iPhone 3G last summer.  That wasn’t unexpected… I had gotten a discount on the BlackJack I bought when I first switched to AT&T in 2006, then paid the full price for an iPhone in 2007, then got a 3G in 2008 at the significantly discounted price.  I was frustrated that there wasn’t a better option for dealing with a stolen phone, but I didn’t really expect AT&T to subsidize another phone 7 or 8 months later.

Not wanting to wait (as I’m quite dependent on my phone these days), I agreed to pay for the phone.  I also looked at the HTC Fuze, but was told that the price would be basically the same, roughly $400.  So I decided to buy a new iPhone 3G 8GB (smaller than my original 16GB, but it saved me $100 and I didn’t really need all that space for my usage).  As I was checking out, the salesman handed me a sheet of paper and said I needed to sign.  “What’s this for?” I asked, as it looked like a service agreement and I knew I wasn’t buying one of those.  He said, “Oh, this is just something Apple makes us to whenever we sell a phone, you have to re-sign your existing contract.  Any other phone you wouldn’t have to sign it, I don’t even know why they do it.”  I thought that was weird, but shrugged and signed it anyway.  But before I did I asked an important clarifying question: “This won’t affect my upgrade eligibility, right?  If it does I’ll just buy a used phone or get my 1G iPhone back and use that until this summer since I assume there will be a new model.”  I was incredibly explicit about this question, and he was very explicit in his response: “Nope, you’ll still be able to upgrade.”  Great.  So I bought the phone and went about my business.

Fast forward to June when I decided to grab a 3G S.  This part I’ve written about before in detail. Well, I did as suggested and went back to the AT&T store in Bellevue.  There I was told that I couldn’t get the full discount, but that I could get the “early upgrade” discount, which I think means $399 for the smaller 3G S model.  Fine, that seems good enough to me.  But they’re out of stock.  The sales guy asks me if I want to back-order one, and I say yes.  He starts the process, but hits some kind of roadblock.  He says, “Sorry, I can’t order one right now and get you the discount, but if you come back when they’re in stock we can do it.”  Fine, whatever.  I call the place a couple weeks later and am told they’re in stock.  I show up to buy the phone, someone starts ringing up my purchase, and then they hit a problem in their software, saying that I can’t get the discount until sometime next year.

She calls over a manager who explains to me that because I got a discount back in February, I can’t get another one so soon.  Wait a minute, what discount?  I was told I was paying full price in February, and was explicitly told by an employee of that store that my upgrade eligibility would not be affected.  I explain this to the manager who insists that none of his employees would have done that, and basically accuses me of lying.  I pressed the issue and he said he couldn’t do anything about it, but that he would contact his “regional supervisor” or something and request that they do some kind of override for me.  He says it’s too late to reach that person today but that he’ll take my e-mail and phone number and get back to me.

I waited.  I never got a call.  I never got an e-mail.

I went back a few weeks later and got the same run around.  This time I was told the manager wasn’t in, and was given his card.  I haven’t written to him yet, I’ve been too busy, and I’m pretty disenchanted with the whole prospect.

I’ve been a pretty good AT&T customer for several years now.  I pay extra for text messages that cost them nothing.  I never make late payments (except when their useless AutoPay system kept screwing up, so I gave up on using that ages ago).  Last year I paid a ton to to them to use my phone while I was in Europe (when I probably should have just unlocked it and bought a pay-as-you-go SIM there).

What bugs me more than not getting the discount is that they’ve made a habit of lying to me and giving me the run around instead of being straight with me.  First, when the salesman told me that buying the replacement phone wouldn’t affect my upgrade eligibility.  Second, when I was told I could get the discount if I came back when they were in stock.  And then once again when I was told that the manager would try to help me out and get back to me.

Given the hostile treatment I’ve received I may terminate my contract early, pay whatever ETF there is, and switch to another carrier – if only in protest to the way I’ve been treated by the Bellevue AT&T store employees.  So which phones and carriers look like the best options to you?  Palm Pre?  The new HTC Leo looks pretty sweet, but they don’t have any details on who will carry it or when.  Let’s hope it’s not AT&T…