Wednesday, July 30, 2014

The Phoenix is Rising: Azure Storage Explorer 6

I'm very excited to announce that, after a long hiatus, work is progressing rapidly on the next version of Azure Storage Explorer and Preview 1 is now available on CodePlex. In this post I want to provide some background context on why the long wait and what you can look forward to in version 6 of Azure Storage Explorer, the "Phoenix" release. In my next post, we'll review Preview 1.



Where We've Been: Azure Storage Explorer versions 1 through 5
I've been involved with Windows Azure from the very beginning, and was honored to be selected as one of the inaugural MVPs by Microsoft. One of my first year contributions was Azure Storage Explorer, a tool for working with Storage Service accounts (blobs/queues/tables). Although there are multiple storage tools available today (both free and commercial), I believe Azure Storage Explorer was the first such tool for Microsoft's cloud platform.

Over the next few years, as the platform grew and extended, we periodically revised or rewrote Azure Storage Explorer, adding support for things like Shared Access Signatures and Logging Policy. By 2012, we were up to a beta of version 5. At that time, the Windows Azure portal had just undergone a major UI change and we styled ASE v5 to match. It looked like this:


Despite some pauses in regular upkeep, Azure Storage Explorer has become pretty popular. If you visit the Azure Storage Explorer CodePlex site, you'll see that there have been, as of this writing, a whopping 184,000+ downloads overall. That's pretty inspiring and humbling. I've been writing software for 35 years, of all varieties, but this has to be the one thing I've done with the broadest adoption.


The Pause
Over the last two years, however, there haven't been any updates to Azure Storage Explorer. If you work in software, then you know time is the enemy of software. The mere passing of time can turn a useful tool into a limited one as platforms change.

So why the pause? Well, I didn't stop working on the Microsoft cloud platform, and I didn't leave Neudesic, and I didn't stop being a software engineer, and I didn't stop valuing community work. But I did have some things going on that made it very difficult to work on Azure Storage Explorer or even to blog.

The pause in upkeep has been due to a combination of medical problems and a very busy project schedule on my part. I've had to work through some challenging orthopedic problems. In 2012 I suffered a tendon tear in my right arm that put me in a lot of pain and made it difficult and painful to do many everyday activities (such as getting dressed!). It took months to get diagnosed and then more months of treatment and therapy to restore use of my right arm. That was bad enough, but I'm now going through the same thing all over again with my left arm! Combine all of that with some ultra-busy projects at work (you know, the kind where you and your team are working around the clock to meet deadlines), and there just hasn't been any bandwidth for Azure Storage Explorer. Or blogging. Or speaking.

But wait a minute, you say. This is the era of open source and community software development. Surely there are others who would like to help work on Azure Storage Explorer. Indeed there are, and a number of talented folks have offered to assist. However, we weren't in a good position for that with version 5 because a lot had changed:

• The Microsoft Storage Client library had changed significantly, now up to version 4, with breaking changes.
• The MSI setup project we used for installation is no longer supported in Visual Studio.
• The way local developer storage is accessed has changed in the platform.
• New data centers in China require tools to use a different set of storage service endpoints.
• Even the name of the platform has changed, now known as Microsoft Azure.
• Our source tree had branched and fragmented a bit too much, and some reconciliation was needed.

All of the above amounted to this: we didn't have a very good starting point that would build with modern tools/frameworks or function well with the current cloud platform. I felt we needed a fresh start with an updated code base if we were going to be able to run this well as an open source project.

Azure Storage Explorer version 6
And so, that brings us to Azure Storage Explorer version 6. I've been able to carve out some time here and there, and we now have a good start on a new code base. Enough to release Preview 1, which is now on CodePlex.

These are some of our objectives for Azure Storage Explorer 6:

• A Visual Studio 2013 WPF solution.
• Uses the latest .NET Storage Client Library, v4.0.
• Uses InstallShield LE (included with Visual Studio)
• The WPF solution uses the Task Parallel Library (TPL) to handle asynchronous tasks
• Has an updated user interface.
• Source code online.
• Set up as an open source project to allow for collaborative contributions.
• Updated for the latest cloud platform.
• Supports configurable storage service endpoints, for example to support data centers in China.
• Has support for newer platform features, such as CORS.


A lot of the improvements in version 6 are subtle and have to do with small improvements that add up to a lot of usability. For example, we've previously had Copy Blob operations, but in version 6 you can copy to any container you want, even in another storage account in another data center. You were previously able to edit block blobs, but now you can also edit page blobs.

With this new code base, we're well-poised to take Azure Storage Explorer places. Once we match the basic feature set past versions have provided, we'd like to add some compelling new capabilities and also take advantage of new Microsoft Azure features (stay tuned for details). Most importantly, we can have multiple contributors involved which means my personal availability won't be a bottleneck in keeping the tool maintained.

The just-released Preview 1 supports blob operations only. Table and queue support will be coming in subsequent updates. Should you upgrade to version 6? If some of the pain points mentioned earlier have been affecting you and you don't mind being an early adopter, yes. If you need table or queue support, or prefer not to be on the bleeding edge with new software, then you might to wait for a later update.

In my next post, we'll take a tour of Preview 1.

Sunday, November 10, 2013

The Moto X Custom Order Experience

I just ordered a Moto X Android phone for myself, and thought I'd share the experience.The Moto X has a unique custom order experience which is somewhat reminiscent of custom-ordering a new car from a factory: you get to choose every last detail. The Moto X is made in Fort Worth, Texas, and if you're in the U.S. you get your new phone about 5 days after placing your custom order.

Making Arrangements With Your Carrier
You can start your experience online, but if upgrading from a different phone you'll likely begin with a visit to your carrier. In my case, I was having some technical problems with my Nokia Lumina 920 phone and decided it was time to upgrade, so I stopped in at my local AT&T store. After inspecting an actual Moto X to ensure I would be comfortable with the weight and form factor, I decided to go for it.
I was initially told it would be $200 to upgrade to the 16GB Moto X or $300 for the 32GB Moto X, but after some checking the salesperson informed me that due to some specials that were running I could get the 32GB Moto X for under $100. Sweet.
Once you've made arrangements with your carrier, you'll get a voucher card like the one shown below. You can then design your customized phone online and complete your order from home.

Carrier Voucher Card

Online Designer
You design your phone at http://motorola.com/designit, and the design experience is noteworthy for several reasons. First of all, you're able to customize a great deal about your phone, including back color, front color, button color, the display name of your phone, even your wallpaper. Secondly, the experience is done well: it feels immersive and is just plain fun.

Online Designer Start Screen

Phone Back Color
The back of your phone is the part with the greatest selection of colors. The online designer groups the choices under Cool colors (Navy, Turquoise, Olive, Mint, Royal Blue, Spearmint, Neutral colors (Woven Black, Woven White, Cement, Black, Chalk) , and Warm colors (Cherry, Lemon Lime, Violet, Crimson, Blush, Raspberry, Cabernet). As you select this and other options for your phone, you see your custom phone expertly depicted. Moreover, you can rotate and zoom in on the image.

Turquoise Back Color

  
Raspberry Back Color

 
 Royal Blue Back Color

 I ultimately selected a Royal Blue back color for my phone.

Front Color
Compared to the wealth of colors available for the back, the front phone color selection is a tad limited: the only color choices are Black and White.

Black Front Color


White Front Color

 I selected a white front for my phone.
 
Accent Color
You also get to choose the "accent color". This is the color of your side buttons and the ring around your camera. There are 7 choices: Metallic Blue, Metallic Silver, Metallic Yellow, Metallic Red, Metallic Purple, Metallic Black, and Metallic Orange.
 
Blue Accent Color
 
I went with a metallic blue accent color for my phone.
 
Memory
You can select 16GB or 32GB of memory. Depending on what you've earned in terms of upgrades with your carrier, and applying current promotions, your preferred model will likely be attractively priced.
 
Selecting Memory
 
Power On Name or Greeting
Your customization is not limited to physical manufacturing elements: you can also specify some software configuration aspects of your phone. Of course, you can set these up or change them anytime once you have your phone, so these selections are not nearly as binding--but it's still nice that you can tailor even these aspects at order time.
 
Power On is a name or greeting text that will appear when you turn your phone on.
 
Power On set to My Name
 
I set my Power On selection to my name.
 
Wallpaper
Another selection you get to make is your wallpaper. There are about 20 or so wallpaper choices.
 
Wallpaper - Earth
 
Wallpaper - Piano
 
I selected the Piano wallpaper for my phone, but will most likely replace it with a personal photo once I receive the phone.
 
Google Account
You can choose to link your phone to your Google Account, if you wish. If you do, your phone will be aware of your name and username when you first power it on. You'll need to enter your password, however.
 
Linking to Your Google Account
 
Accessories
You also have the choice of choosing accessories during the design/order processing, some of which can also be customized. JAX headphones with mic, for example, are available in 16 different colors.
 
Accessories
 
 JAX Headphones Accessory Color Selection
 
I decided to add JAX headphones/mic in royal blue for an additional $39.99.
 
Carrier Selection
Near the end of the process you'll select your carrier. If you've made previous carrier arrangements, as I had, you can enter your PIN at this point from your voucher card.
 
Selecting Carrier
 
Checkout
At this point you'll make payment arrangements (not shown) and complete your order.
 
Completing Checkout
 
 
Thanks for Your Order
 
You'll receive options at this point to transfer your data and to share your phone customization.
 
Data Transfer
The data transfer option offers to migrate your phone's data over to your new Moto X. This turns out to only be available for users migrating from an iPhone or Android phone. I couldn't take advantage of this since I was upgrading from a Windows Phone.
 
Data Transfer Option - only available for Android and iPhone
 
Tell The World
If you're willing to tell the world about your new customized phone, either through Facebook or Google Plus, you'll earn $10 credit in the Google Play Store. This is a smart way to get new customers involved in evangelizing the brand.
 
Tell the World About Your Phone for Google Play Credit
 
Order Confirmation Email
You'll get an email confirming your order, which gives you a short time window for changes or cancellation (1 hour).
 
Order Confirmation Email
 
The Custom Order Experience: In Summary
Someday all phones will have a similar customization experience, I suspect. Although it remains to be seen what I think of the actual Moto X phone once I get to use it, the level of customization available--and the experience of designing your customized phone--has definite appeal. I think Google and Motorola are on to something here.

Follow-up: Now That I Have the Device...
First off, I want to say the online design and ordering experience set a 5-day expectation. In fact, I received my custom device only 3 days after placing my order. I ordered on a Sunday evening and had the device in-hand Wednesday afternoon.

The online activation process with AT&T only took a few minutes, though they seemed to expect me to crack open my device and confirm serial number and SIM card number--which wasn't obvious how to do with a fresh phone in my hand. I was content to confirm those numbers off the box label. Even though I was upgrading an existing phone and keeping my same phone number, there was no need to transfer my SIM card: the upgrade phone comes with a new SIM card and the online activation process anticipates this. There was a stern warning given during the activation process that it was important not to turn the device on until activation was complete and 15 minutes had gone by... but in fact I turned the device on accidentally several times inadvertently in handling it. None of that caused any trouble, though.

So far, I really like my Moto X. It's fast and speedy and has nice display. And this is coming from someone who also has an HTC One, considered by many to be the leader of the pack. In comparison, the Moto X is in a smaller and lighter package but has the same screen dimensions (though fewer pixels). You can read a side-by-side comparison and performance test here.

Saturday, October 12, 2013

Review: Nest Thermostat Self-Installation and First Impressions

Yesterday I installed a Nest Thermostat in my home, all by myself. You can, too. Here's what's involved.

About the Nest Thermostat

If you're not familiar with the Nest, it's a Steve Jobs-style reinvention of your home thermostat. Scott Hanselman has written a very thorough review of the device. It will definitely make you the coolest homeowner on the block: it has an attractive appearance, a cool user interface, can be remotely controlled from your phone or a web browser, has the smarts to learn your preferences and habits, and can save you money. It looks like this--more on what it's like to use at the end.


Is Nest Compatible with Your Home?
One question you might have is, will Nest work with your heating and cooling equipment? The Nest thermostat, in its second generation, claims compatibility with "95% of home systems with low-voltage systems". Still, that's small consolation if you're in that remaining 5%. Fortunately, you don't have to take a gamble. Nest's online compatibility checker will answer this question for you. All you have to do is pop off your existing thermostat, click the wires you see, and you'll get your answer. For me, this looked as follows:

My Thermostat's Wiring

Nest Online Compatibility Checker

Good to Go!

To Self-Install or Use a Professional?
After researching the Nest a bit, and viewing the information and videos on the Nest web site, as well as various on-line reviews, I was hooked and ready to buy. But should I install it myself, or use a professional? I'm not exactly known as a handyman: my wife is usually the one who tackles plumbing and home-improvement and painting projects at home, and the few ones I've attempted haven't usually turned out well. Accordingly, I'm much more likely to pay someone to work on my home than do it myself.

First, I was pleased to learn that if you want to do a professional installation, Nest has you covered with a network of trained and approved certified installers. A search by zip code revealed that of the many nearby options, one installer was only a mile and a half from my home.

On the other hand, everyone I talked to (including some colleagues at work) said it was really, really easy. That all the tools you would need were included. After watching the self-installation video, I decided to summon my courage and try to install it myself.

So off I went during lunch yesterday to my nearest Best Buy, and $250 later I had my very own Nest. All that was left was to install it...

The Moment of Truth

Installation
As I said at the beginning of this article, Nest has been highly influenced by the way Apple does things, and that includes every aspect of designing the user experience, including packaging and installation. The instruction guide lists 12 steps to install:

1. Switch off power.
2. Remove cover.
3. Check your system.
4. Remove any jumper wires.
5. Label wires.
6. Disconnect wires and remove base.
7. Mark where screws will go.
8. Attach base.
9. Connect wires.
10. Attach display.
11. Switch power back on.
12. Setup and Nest Account.

Was it as easy as claimed? Read through for a blow-by-blow account, or go to the end to cut to the chase.

1. Switch Off Power


The instructions say to go to your breaker box and turn off power to your heating and cooling systems. In my case, there was a slight problem because they weren't explicitly labeled. So, I turned off the master switch instead.

2. Remove Cover


In this step you pop off the top of your thermostat (most thermostats pop off easily). This step I'd already done, in order to use the online compatibility checker, so no problems here.

A colleague had advised taking a picture of your wiring with your phone before changing anything, and I found that to be good advice.

3. Check Your System


In this step, you verify that you don't have a high-voltage system. If you do, you can't continue. I didn't, so on I went to Step 4.

4. Remove Any Jumper Wires


In this step, you remove any jumper wires, because Nest doesn't need them. I did in fact have a jumper wire, and removed it.

5. Label Wires


In this step, you take labels provided in the installation kit and attach them to your wires. This is to ensure you hook them up to the right place on the Nest device. I did this to the 5 wires my thermostat had (W-White, Y-Yellow, G-Green, Rh-Red, and C-Blue).

6.  Disconnect Wires and Remove Base


In this step, you loosen and remove your wires (labeled in the previous step). You also remove the screws holding your thermostat against the wall.

It's at that this point you start to feel committed. And here's where I ran into my first wrinkle: in addition to two standard screws, there was also a hex screw holding the thermostat in place. No mention of that in the instructions, and no tool included that fits. I rummaged through my tools, and luckily found a hex screwdriver in the right size. If  I hadn't, my old thermostat might still be on the wall right now...

7. Mark Where Screws Will Go


In this step, you mark with a pencil where your screws will go (there are two of them). The Nest has a built-in level to avoid a crooked installation.

It's at this point that you have to consider whether you might need to cover up holes from your old thermostat. If you do, you can opt to spackle and paint (which I wasn't prepared to do), or use the handy trim plate included with the Nest. That's the way I I opted to go.


8. Attach Base


In this step, you simply screw in the base (along with the trim plate, if you've decided to use that). Although Nest includes a clever screwdriver for you to use, this step took me some time. Eventually, I switched to a larger Phillips screwdriver I had at home, which gave me better leverage.

9. Connect Wires


In this step, you connect those wires you previously labeled to the Nest. The Nest makes this easy, with touch connectors.


Nevertheless, I had some trouble here: one of my five wires was not very long and did not want to cooperate. I had to get some pliars to get the job done, and it took a while to get right. That pesky green wire labeled G really gave me a run for my money. Once all the wires were connected, I ensured they were flush flat against the wall as directed.

10. Attach Display


This step was easy: Just connect the main part of the Nest to the base, aligning a pin connector.

11. Switch Power Back On


In this step, it's back out to the breaker box to turn power back on. Then back in, to set up the Nest.

12. Setup and Nest Account


It was heartwarming to see the Nest power on, and do cute things on the display. Before long, I was finding my home Wi-Fi network and entering my password. I sat through a very long wait while the Nest downloaded a software update, restarted itself, and then proceeded to download another update.

The longest part of the setup

After that, we swiftly proceeded through the rest of the setup. The way Nest has set up interaction with the device is very innovative--after all, all you can do to communicate with it is rotate it or click it or walk up to it. It's amazingly well done.


I had a heart-stopping moment when the Nest displayed the wires it detected. I had connected five, and it was only showing four of them! Remember that pesky green wire labeled G? Not shown as detected! It was at this point that I wondering if it had been a mistake to self-install. After all, I needed this thing to work!


Not wanting the house to burn down or something like that, I removed the front of the Nest, turned off the power breaker, removed and re-connected the green wire, and put everything back and tried again. Well, it still wasn't showing the green wire as detected. I decided to let it proceed, and... well, everything works. It heats, it cools. I'm still not sure why the green wire (which I've learned controls the fan) didn't show as detected, but there don't seem to be any problems.

Life With the Nest
It's only been 24 hours since I installed the Nest, so it's a little premature to give it a full review... except to say that so far, we love this thing! How did we get by without it?

The display background is blue when cooling, red when heating, black when inactive. The display turns off after a few minutes, but comes back on when you walk up to it--only one of many nice little touches that gives the Nest personality. In no time it will have you thinking of it like a pet or a member of the family!


It's amazing how versatile the display is. It can show you a lot. It can do a lot.

It's truly neat to be able to control the temperature with a phone app (available for iOS and Android phones and tablets) and not have to get up. It also raises the specter of temperature wars, but that was a possibility way before the Nest appeared on the scene as you likely already know. But now you can subtly make adjustments without getting up and being seen. There's also the possibility of practical jokes now: a family member can be away, but still exercise control over the thermostat! If this turns out to actually be a problem, there is a lock feature.

You can control the Nest remotely from your iOS or Android phone/tablet, or from a web browser. Here's what the iPhone app looks like.

Nest iPhone App

Turn your phone sideways, and you can get to a lot more, including settings and schedule.


Nest iPhone App (Landscape orientation)

So far, we're really liking the Nest Thermostat. Once we've had it for a full week, it will have learned something about our preferences and habits and we'll start to see how it learns by observing.

Let me say, if you consider yourself a self-respecting geek, you want one of these. While I can't say the installation was 100% trouble-free, it was nearly so. The attention to detail Nest has put into the process and the product is something I really appreciate. Their claim of having re-invented the thermostat is a true one, and I look forward to other products from the company. They already have another product on the market, smoke and CO detectors.