Guy Shahine's Blog

The plus (+) in Gmail

If you have a gmail account like the cool kids these days, then there is an amazing feature that you didn’t know about, it’s the + feature (I’m not sure what google officially calls it), I also like to call it “catch the bastards” feature (explanation coming later).

So what is it about? Basically, you’re allowed to add a keyword, an identifier, a spell, whatever you want to call it after your username in your email address where you separate them with a ‘+’ (plus character).

Here’s an example: Let’s say I want to sign up to a new website, for instance, https://www.resoltz.com. My email address is “gshahine@gmail.com”, my username is “gshahine” so when I get asked to enter my email address, I set it to “gshahine+resoltz@gmail.com”. Now, when I receive emails from https://www.resoltz.com, they show up like this

email-Clip

How awesome is that??? I would kiss a goat right now (I look for the slightest excuse by the way Smile)

Now, you might ask me “But Guy, how would this make my life easier?”. Well, few things off the top of my head:

  1. Making your life easier is up to you and it’s all in your head.
  2. It allows you to label emails easier, for instance, adding rules for “+family”, “+friends”, “+FYI”…etc
  3. It might allow you to identify the bastards that sell your email address to entities that want to you suck your fat (ladies) or enlarge your penis (dudes).
  4. You can sound cheesy, where let’s say a beautiful lady that you just met asked for your email address to stay in touch, “gshahine+inlove@gmail.com, bamm, next thing you’ll realize is having breakfast together.

The Awesome Shift+Right Click in Windows

Sometimes it’s the small things that matter, I use my computer on a daily basis, and the fact that I work at Microsoft, my primary operating system is definitely Windows.

Working with people that are part of the organization that built the Windows OS, sometimes you learn small tricks (also called hidden features) that make your life soooo much easier (Most of those tricks are in command prompt and visual studio). You might say, “well it’s probably documented somewhere”, or if you’re more geeky, you might say “ohhh http://lifehacker.com mentioned those tricks long time ago”. Sorry to disappoint you my friend, I’m that kind of a guy that never reads the instructions manual for pretty much anything. And on many occasions I challenge myself by even not looking at the Ikea instructions to put a desk together (I just remembered how many hours I’ve spent pulling things apart and starting all over because I realized towards the end that I’ve put some screws in the wrong spot *sigh*)

Anyway, back to our main topic that’s highlighted in the title, “What’s awesome about Shift+Right click?”. Well, instead of giving you the answer, let’s play one of my favorite games that’s usually featured in newspapers, and since we’re still on missing the right spot topic Smile, it’s called “Spot the differences” (I’ll make it easy, I promise)

ok, so here’s a snapshot for a right click on a text file in Windows 7

image

And here’s a snapshot of Shift+Right click on the same file

image

Did you see it? Com’on, try harder. Ok, I promised I’ll make it easy, notice that “Pin to Start Menu” and the sneaky “Copy as path”, and here’s an example of what get’s copied to your clipboard  when you use the copy as path [“C:UsersgshahineDesktopSomeFile.txt”]. The copy as path feature is really useful when you want to share with your coworkers a file location on a shared folder or a file location in your source control enlistment. I can’t even count on my hands how many times other coworkers were surprised when they saw me pulling a copy as path while working on the projector. (Well, probably 4 or 5 times, but it sounds cheesier when you use the “can’t count on my fingers” expression, it’s makes 11 sound like sooo much Smile)

Not impressed, try it on an Excel file and discover some goodies Smile. Still not impressed?? I’m sure you don’t even smile to a maple bar donut topped with bacon. It’s those small things that matter.

Azure User Account Management

“Necessity is the mother of invention”

The Windows Azure Platform currently offers the ability to have an administrator and 10 co-administrators associated with every account (Thanks to Steve Marx’s help to figure out that number), which introduces a limitation when 11 or more team members want to share the same account. In this post, I’m going to illustrate the different ways to avoid this limitation, and I’m pretty confident that at some point in the near future the platform will support a much more sophisticated user management interface.

Some rules of thumb: Treat the account as your online banking credentials. Whoever is paying the bill should frequently keep an eye on the consumption for any suspicious activity. Periodically renew the password or refresh the management certificates, and remember that the more people that share a secret, the less secret it is 🙂

Even though we all know the rules, sometimes (in some cases, many times) we don’t follow them. So here are the different ways I’ve used to share the same account.

Share Co-Admin Credentials

One of the light overhead ways to share the account is to create a single LiveId account and give the credentials to every team member. This way everyone can login to the Windows Azure Portal as a co-administrator. To add an additional layer of safety, you can periodically change the password, this way you can avoid cases where someone left the group and still has the password or probably someone engraved the password in their favorite pub’s bathroom on a drunk night (yes ladies, you would be surprised with what’s in there)

Share A Jump Box

A jump box could be a dedicated machine or virtual machine where you save the co-admin credentials in the browser, then anyone who needs to deploy a service will have to login to the jump box with some operating system credentials. This technique is painful (imagine the process: package your service –> remote login into the machine –> copy the package and config file –> deploy through the portal) but more secure because the jump box could live under the corporate network and the credentials of the Windows Azure account are not shared with the users. Ohh by the way, only one user can be logged in to the box at a time, so depends on your team size, you might need more jump boxes.

I followed this process for like a couple of weeks until the team wide bug bash day arrived where I had to apply few fixes and deploy multiple times, and trust me I wasn’t in the best mood afterwards, the extra step of copying the files and deploying through the portal felt like ages

Share A Certificate And Subscription ID

(My favorite and most practical way)

At the moment, the Windows Azure Portal allows you to deploy a maximum of 10 certificates to your account, which will allow you to use the service management APIs to manage your account. You can create a single password protected certificate and share it with everyone on your team or you can have multiple certificates for different employees status (for instance, you can have a certificate for your full time employees, another one for contingent staff, another temporary certificate for developers who are not on the services side of the house but decided to experiment with cloud based services part of their out of the box projects. Once a user has the certificate installed on their machines and the associated Azure account subscription ID, they’ll be able to use the sweet visual studio publish button to package and deploy their service, or any of their favorite Azure Service Management Tools

Finalement (finally in French)

Sharing a certificate and subscription ID is my favorite approach because I mostly use the client side tools to deploy and manage my applications.

Please share any other ways your team applied and what you like and don’t like about them.

Azure Service & Storage Management Tools

In your day-to-day efforts to build a cloud service on Windows Azure, it’s crucial to be aware of the currently available tools that will facilitate your job and makes you more productive. I’ve created a table that will illustrate the different aspect of each tool, then I expressed my opinion about each one of them.

Azure Tools Table

See the table in Zoom.it

UI tools

Cloud Storage Studio

A tool developed by a company called Cerebrata, It’s currently my favorite tool which I extensively use for service management and browsing storage accounts. Even though the name is confusing, the interface is really nice, the application is stable and the team is very receptive of feedback . The only thing that annoys me, I can’t retrieve storage accounts information. Plus, it’s not for free but the team is actively adding new features and rolling fixes.

UPDATE 5/29/2011: The team read my blog post and they implemented the ability to retrieve storage accounts information. Now, I wish I had the ability to right click on a certain storage account and connect to it.

Windows Azure MMC tool

It has the richest set of utilities and It’s for FREE. Now, If you can bite on the wound and accept a blend interface, plus you expect it to hang here and there, then this tool if for you. Also note, that the tool is lightly maintained and I’m not aware of any planned new releases.

Azure Diagnostics Manager

Another tool developed by Cerebrata. This tool is more focused on managing your diagnostics. It includes a bunch of utilities that will definitely help you a lot in browsing through the logs, getting performance counters, trying to figure out some weird issue…etc It also includes a storage explorer (that I haven’t used because I already have Cloud Storage Studio)

UPDATE 5/29/2011: I’ve been using this tool more lately, and besides the fact that it gets stuck when I connect to a certain storage account once in a while, it’s very useful, and I really like the graphs that gets generated for the performance counters over time.

Visual Studio Tools For Azure

There are multiple parts: It has a nice interface for configuring your service. You’re able to build, package and deploy your service when you ask Visual Studio to publish your app. You can also build, package and run locally in devFabric. There is also a readonly storage explorer. The downside is that you can’t manage your services or storage data but I believe there are plans to allow you to (at least for storage data)

Windows Azure Portal

The portal is required for many things that are usually done very rarely like creating and deleting a storage account. It’s slow and poor on features, but there was an announcement at PDC2010 that there will be a redesigned portal built on top of Silverlight.

Cloud Storage Studio /e

A web based storage explorer built by Cerebrata. It’s still in beta and for free. I personally haven’t used it in a while.

UPDATE 5/29/2011

Thanks to all the readers that brought to my attention other tools that I’ve missed, here’s another set of tools:

Azure Storage Explorer

A FREE open source tool published on codeplex that allows you to manipulate your Azure Blob, Queue and Table storage

AzureXplorer

Developed by a company called clumsyleaf, it’s a paid product and I haven’t used it myself but it’s worth checking it out, it might suite your needs, check out the website for all the details/screenshots/pricing …

CloudXplorer

A Clumsyleaf free product, it let’s you browse through your Azure blob storage account in a similar fashion as the Windows file system explorer.

TableXplorer

Another Clumsyleaf free product, it offers a simple way to retrieve your Azure tables.

Windows Azure SCOM Management Pack

Here’s a nice blog post that enumerates the features of the SCOM (System Center Operations Manager) Management Pack for Windows Azure.

As far as I’m aware, it’s currently the only enterprise level monitoring tool for Windows Azure. If you’re already using SCOM then it’s perfect, you can immediately start monitoring your Azure services.

Here’s what I really like about it :

  • Setup alerts to get notifications by email, phone call, IM, … for the following cases:
    • Service status changed .
    • Performance counters crossed some specific threshold.
    • A Windows Event with a certain ID is detected.
    • Critical, Error, … logs are observed in the logs store.
    • and more…

What I don’t like about it:

  • You need to have a SCOM license to be able to use the Management Pack.
  • If you’re not familiar with SCOM, I found it cumbersome to set it up.

Script based tools

Windows Azure Service Management Cmdlets

Even though I haven’t wrote any scripts that make use of the cmdlets, I know the test and operations team rely on them to automate different kinds of services management.

Azure Management Cmdlets

Didn’t also get the chance to play with it, but I believe it’s very similar to the Windows Azure Service Management Cmdlets. I’ll leave it for you to figure the difference 🙂

Azure SDK command line tools

The SDK command line tools are essentials for automation. There are multiple ways you can find those tools useful, I’ll name a couple 1) Write a custom script that will allow you to package then run your service locally (or perform other actions) using cspack.exe and csrun.exe. 2) Integrate cspack.exe part of your build system to automate packaging the service.