Tag Archives: Blogging

Friday Shorts – #VMUG, nmcli, All flash VSAN, Altaro and more…

Why hello there – it’s been a while – It’s been a busy couple of months with work, conferences and home life and blogging has been put on the back burner for a bit.  I mean hey, I live in Canada and I need to get ready for the winter eh!  It’s a “Game of Thrones” winter around here!  Fear not over the past couple of months I’ve been doing some awesome things with Ravello, with a vSphere 6 upgrade, and some other awesome automation and orchestration stuff so I have a lot of posts filed under the idea category – so there is no lack of content to be written!  All that said for now let’s just have a look at some great community posts.

More advantage to the VMUG advantage

vmugVMUG Advantage has many benefits including free NFR software evals, discounted training, certification, and conference fees, discount codes for software and labs and more – but now we can add one more item to that list.  As of now VMUG is offering $600 of service credit with vCloud Air OnDemand.  I’ve reviewed vCloud Air OnDemand and can say that $600 is more than enough to get you in there and playing around for the year!  This is yet another great benefit to the VMUG Advantage program so if you haven’t bought it – do it!

Unexpected Signal: 11

VMware LogoDid you jump to get vSphere 5.5 Update 3 installed and running in your environment?  If so you might want to check out this VMware KB which outlines that the snapshot consolidation process may cause your VMs to fail with the above, well descripted, error message Smile  Sorry, nothing funny about if you are running any backup solution that may utilizing the VADP to free up disks for processing!   Anyways, downgrade, power off VMs and consolidate, or redeploy 5.5 are your resolution options for now!

Linux Networking through vRO

vmware-vcenter-orchestrator-vco-logo-150x150If you love vRO and automation and you don’t follow the vCOTeam blog then you should, do that first before continuing any further.  There, now that that’s out of the way have a look at this very detailed post in regards to configuring networking with Linux using nmcli, or better yet doing the whole thing through a vRO workflow – Awesome stuff!

All Flash VSAN in the homelab

tier-whatJason Langer (@jaslanger) has a great article about spinning (err flashing) up an All Flash VSAN setup in his homelab – showing you both the hard and the easy way this is a great guide for those looking to test out AF VSAN in their spare time (you know, when you aren’t building lego and what not Smile)

Rubrik and vRealize Orchestrator

rubrik_press_bg1Well, if you are a Rubrik customer and you are a vRO lover then I suggest you head over to Eric Shanks’ blog as he (and Nick Colyer) has a slew of blog posts related to vRO and Rubrik and how to do just about anything utilizing the API’s that Rubrik provides.

Speaking of backup – Altaro is now on the scene

altaro-vm-backup-500x257There’s a new player in the backup space when looking at protecting VMware virtual machines!  I had a chance to sit on the beta for the Altaro VMware backup and albeit I didn’t have a lot of time to check it all out I did get it installed and configured some backups and liked what I saw!  There have been a lot of community reviews of their software and first impressions are very positive – anyways, all the data protection junkies can check them out here.

Rock the vote! Top vBlog voting now open!

2014_Award-Banner_Top-25-smallIt’s that special time of year again – a time for the virtualization community to come together and vote for their favorite virtualization blogs.  Yes – the Top vBlog Voting for 2015 is underway over at vSphere-land.com.  As much as this is just simply a ranking of blogs I’m not going to lie – it feels great to be recognized for all the work that I put into this blog and I appreciate each and every vote and reader that I have here on mwpreston.net.  This will be my forth year participating in the Top vBlog voting and honestly I’m so humbled by the way things have turned out.  In 2012 I put myself out there in the contest and came in at #125, 2013 I moved up to a whopping #39, and last year, 2014 I landed in spot #20 (wow!)  Thank you all for the support!

That’s one small step for man, one giant…I have a dream!

black-sheep-1996-02-gI know the sub title above doesn’t make much sense but wanted to somehow sneak a picture of Farley into this post, so there’s that!  – Seriously though, if you are a reader of this blog, or any blog on the vLaunchpad for that matter be sure to get over to the survey and vote!  Help pay respects and give recognition to the bloggers that spend countless hours trying to bring you relevant and useful information.  Be sure to read this post by Eric Siebert outlining a few tips and things to keep in mind while voting.  This isn’t a popularity contest – vote for the blogs you feel are the best – and if you aren’t sure, take a look back at some of the content they’ve produced over the past year.  Eric has links and feeds to over 400 blogs (insane!) on the launchpad if you have a spare 3 or 4 days 🙂

Speaking of Eric

Don’t forget to give huge thanks and props out to Eric for the time that he spends putting this thing together.  I can’t imagine the amount of work that goes into maintaining something like this.  Honestly I don’t know how he keeps up with it all, the linking, etc.  I have a hard enough time going back through my drafts and creating hyperlinks 🙂  So props to you Eric and Thank You!  Also, reach out to the wonderful folks at Infinio and thank them for once again sponsoring the Top vBlog Voting!  A lot of what goes on within the community wouldn’t be possible without sponsorships and help from all of the great vendors out there!

You have until March 16

That’s right, this whole thing wraps up on March 16 so make sure you get your choices in before then.  You will find mwpreston dot net front and center on the top of your screen once you start the survey (just in case you are looking for it :)).  Obviously I’d appreciate a vote but be true to yourself, if you don’t think I deserve it, skip me and move on to someone you think does 🙂

mwpreston dot net vote

I tend to use the Top vBlog Voting as a time to reflect back on what I’ve accomplished over the last year and 2014 was a super one for me!  I had the chance to attend a couple new conferences –  VeeamON, and Virtualization Field Day 4 – all of which I tried my best to cover on this blog.  I’ve also been doing a lot of writing for searchVMware.techtarget.com which has been a blast (if you are looking for a best news blog vote, check them out).  No matter where I end up it’s simply an honor to be part of this community and to have made so many new friends from across the world!  So here’s to an even better 2015

Share All Of The Content – Automation around sharing community blogs on Twitter

sharememeAttending an X Field Day event for me has been awesome – there are a ton of perks, you get to hear deep-dives directly from vendors, usually involving CTO/CEO/Founder type people.  You get to meet an amazing panel of fellow delegates and develop friendships.  But aside from all this there is one huge benefit that usually goes un-blogged; and that is you get to hear stories and experiences from Stephen Foskett himself – and he has a lot of them.  One in particularly caught my attention – as he explained all of the behind the scenes automation that occurs in terms of building the TFD webpages and sharing all this information out on his respective social media channels.  So, as soon as we, as a delegate click ‘Publish’ there is a ton of IFTTT recipes, Zapier functionality and custom scripts that takes our posts, tags relevant vendors/authors and kicks off the craziness that is Foskett’s brain in code.  It’s really quite amazing.  So amazing that I thought I might try my hand at my own.  Now I am by no means at the level that Mr. Foskett is at – but it’s a start – and here’s how it goes…

My Brain

So what I set out to accomplish was simple.  I wanted to be able to flag, Digg, or star (chose whatever terminology for the RSS reader of your choice) blog posts as I read them – ones that I thought were awesome – From there, the posts would be transformed into a tweet, mentioning the author and sent out on my twitter account at a later time, keeping in mind I would need to buffer these as I could be “digging” 20 posts at a time.

My Brain on Code

So here is how I accomplished that task of taking those random ideas from my brain and transforming them into code.  There is a few pre-reqs and different technologies used, so ensure you have these if you plan on duplicating this.

  • Twitter – yeah, you need a Twitter account.
  • Twitter App – you need to setup an app within that Twitter account – this is what will allow the rest of this craziness to actually connect into your account and send the tweet – we will go over the how to on this
  • Google Drive – The core scripting behind all of this is done in Google Script in behind a Google Spreadsheet – so, you will need a Google account.
  • Digg – I use this as my RSS reader so if you are following along step by step you might want to set this up.  If you use another, I’m sure you can figure out how to get your favorite posts from the reader into Delicious
  • Delicious – I implemented this as a middle man between my RSS reader and the Google Spreadsheet simply due to the fact that I may want to share out content that isn’t inside of my RSS reader.  I can easily add any content into Delicious.
  • IFTTT – You will also need an If This Then That account setup as we will be using recipes to move content from Digg into Delicious, and further more from Delicious into the Google Spreadsheet.  I use IFTTT for a ton of other “stuff” to make my life easier.  You should already have an account here setup Smile

So, the concept is as follows

  1. I “digg” a post within digg – IFTTT then takes that post and creates a Delicous bookmark with a specific tag “ShareOut”  I could also just use the Delicious chrome plug-in to tag any current site that I’m on as a bookmark as well.
  2. IFTTT then takes any new public bookmarks with the “ShareOut” tag that I have created and adds them into a Google Spreadsheet, containing the blog Title, URL, and a “0” indicating that I haven’t processed this yet.
  3. The spreadsheet contains a “CheckNew” trigger/function, which runs every x minutes/hours.  This takes any rows with a “0” (new ones from Delicious) and transforms them into a tweet, shortening the URL, ensuring we are under the 140 characters and adding the authors Twitter handle.  It then places this tweet into the next blank row on the “Tweets” sheet and updates the processed column to “1”
  4. The spreadsheet contains a “SendTweet” trigger/function, which runs once an hour – this simply takes the first tweet on the “Tweets” sheet and tweets it out, then deletes it from the spreadsheet, allowing the next Tweet to move up in the queue and be processed in the next hour, repeat, repeat, repeat.  Every hour until the sheet is empty.

So let’s set this stuff up.

First up we need the spreadsheet created within Google Drive – you can copy mine if you like as it already has a sheet which maps the top 100 vBloggers (and some more) blogs to Twitter (this is the only way I could figure out how to map Twitter handles to blogs).  Either way it will need to be setup the same if you create it new.

Next, setup the recipes in IFTTT to copy Diggs to Delicious and subsequently Delicious to Google Spreadsheet –  IFTTT is pretty easy to use so  I’ll leave  it up to you to figure out how to get the data to Delicious and the spreadsheet.  Just ensure if you are using “Add Row to Spreadsheet” as a that – that you populate all three columns in the spreadsheet in the following order (Title, URL, 0) – The “0” needs to added in order for the Google Script to function properly.  Let me know if you need a hand.

Now we need to setup an app to allow Google script to send the Tweets for us.  Log into your Twitter account and head to http://dev.twitter.com/apps/ .  Once there click the “Create New App” button in the top right hand corner.  Most of the information you put here doesn’t matter, with the exception of the Callback URL – this needs to be “https://script.google.com/macros/”

twitterapp

Once created, click on the Permissions tab and ensure that the access is set to “Read and Write”

permissions

Now we need to get the Consumer Key and Consumer Secret – This is on the “Keys and Access Tokens” tab and we will need to copy to use within our Google Script later, so shove it over to notepad or vi or something Smile

tokens

Now we are done with Twitter and it’s time to get into the good stuff!  Open up your Google Spreadsheet and make sure you have the following sheets within it.

  • Sheet1 – named exactly this and it will be a place holder for the information coming from IFTTT
  • BlogTwitter – This sheet contains all of the Blog->Twitter handle mappings.
  • Tweets – This sheet will be a place holder for our Tweets

Again, feel free to simply copy my spreadsheet – it may make it easier and already has the BlogTwitter sheet populated.

As far as just setting up the sheets with the above names in the same order there is nothing we really need to do on the Spreadsheet – it’s the code behind we really need.  To get here, select Tools->Script Editor.  When the dialog appears select “Blank Project” under “Create New Script For”.  If you copied my sheet you will simply be brought into an already existing blank project.

Before we can get started with the code there are a couple of things we need to do.  Since I use the Google URL shortening service you will need to enable this in the project resources.  This is done under Resources->Advanced Google Services”  Find the URL Shortener API and switch it to On.  You will also need to turn this service on within the Google Developers Console – the link to do so is right within that same dialog – go do that.

shortener enable

So, as far as the code goes I’m just going to dump it all right here so you can just copy/paste all of it – I’ll explain a few things about it underneath.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
function sendTweet(){
 
var TWITTER_CONSUMER_KEY = 'CONSUMERKEYHERE';
var TWITTER_CONSUMER_SECRET = 'CONSUMERSECRETHERE';
var oauth = false;
 
function authTwitter(){
 
var oauthConfig = UrlFetchApp.addOAuthService('twitter');
oauthConfig.setAccessTokenUrl('https://api.twitter.com/oauth/access_token');
oauthConfig.setRequestTokenUrl('https://api.twitter.com/oauth/request_token');
oauthConfig.setAuthorizationUrl('https://api.twitter.com/oauth/authorize');
oauthConfig.setConsumerKey(TWITTER_CONSUMER_KEY);
oauthConfig.setConsumerSecret(TWITTER_CONSUMER_SECRET);
};
 
var requestData = {
'method': 'POST',
'oAuthServiceName': 'twitter',
'oAuthUseToken': 'always'
};
 
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheets()[2]);
 
var sheet = ss.getSheetByName("Tweets");
var tweet = sheet.getActiveCell().getValue();
var encodedTweet = encodeURIComponent(tweet);
 
if (tweet!='') {
 
if (!oauth) {
authTwitter();
oauth = true;
};
 
UrlFetchApp.fetch('https://api.twitter.com/1.1/statuses/update.json?status=' + encodedTweet, requestData);
 
sheet.deleteRow(1);
 
}
 
};
 
function checkNew()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var iftsheet = ss.getSheetByName("Sheet1");
var values = iftsheet.getDataRange().getValues();
for(var i=0, iLen=values.length; i<iLen; i++) {
if(values[i][2] != "1") {
 
// get Twitter Hangle
var urlPath = values[i][1].split("/");
var baseURL = urlPath[2];
var twitterHandle = findTwitterHandle(baseURL);
 
// get other data
var postTitle = values[i][0];
var postURLLong = values[i][1];
 
var URLShort = getShortenedUrl(postURLLong);
// build tweet string
var myTweet = buildTweet(postTitle, URLShort, twitterHandle);
 
// place variable in next available row on Tweets spreadsheet
var targetSheet = ss.getSheetByName("Tweets");
var lastRow = targetSheet.getLastRow() + 1;
var targetCol = "A" + lastRow.toString();
targetSheet.getRange(targetCol).setValue(myTweet);
values[i][2] = "1"
}
} 
iftsheet.getDataRange().setValues(values);
}
 
function getShortenedUrl(url){
 
var longUrl = UrlShortener.newUrl();
longUrl.setLongUrl(url);
 
var shortUrl = UrlShortener.Url.insert(longUrl);
 
return shortUrl.getId();
}
 
 
function buildTweet(postTitle, postURL, twitterHandle)
{
var tweet = "[Shared] " + postTitle + " - " + postURL;
if (typeof twitterHandle != "undefined")
{
tweet += " via " + twitterHandle;
}
 
var tweetlength = tweet.length;
 
if (tweetlength > 140)
{
var charsToTrim = tweetlength - 135;
 
postTitle = postTitle.substr(0, postTitle.length-charsToTrim);
tweet = "[Shared] " + postTitle + " - " + postURL;
if (typeof twitterHandle != "undefined")
{
tweet += " via " + twitterHandle;
}
}
return tweet;
}
 
function findTwitterHandle(blogurl) {
var twitterSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("BlogTwitter");
var values = twitterSheet.getDataRange().getValues();
 
for(var i=0, iLen=values.length; i<iLen; i++) {
if(values[i][0] == blogurl) {
return values[i][1];
}
} 
 
}

Copy and paste all of the above code into the blank code.gs file that was created.  First up, remember that consumer key and secret from Twitter – yeah, they will need to go in their respective spots in lines 3/4.  That is really all of the edits to code you need to make.  If you look at the script there are a few different functions.  checkNew() (Line 45) – this is what takes the data from IFTTT on Sheet1 and transforms it into tweet-format, then places it on the “Tweets” sheet.  You can see it calls out some other functions which shorten the URL and ensure the tweet is under 140 characters, as well as flag a 0 to 1 on Sheet1 (ensures that we don’t’ tweet the same thing twice).   The sendTweet() function (Line 1) – this takes whatever is in A1 on the Tweets sheet and, you guessed it, tweets it.  When its done, row 1 is deleted, allowing the next tweet to move into A1 and be processed next time the function runs,

To test, put some data in the first sheet, Column A – the blog post title, Column B, the blog post URL, and a “0” in column C.  You can do this manually for now if you want or if you have the IFTTT recipes setup let them take charge.

Then, at the top of the script editor change the function drop-down to “checkNew” and click “Run”.  If you don’t see the functions listed within the drop-down you may need to “File-Save” and completely close out both the script editor and the spreadsheet.

test1

Once this has complete its’ run you should be able to flip back to the spreadsheet and see a Tweet sitting inside A1 of the “Tweets” sheet.  The data from “Sheet1” should also be updated with 1 flag.

From here it’s a matter of flipping back to the Script Editor and running the “sendTweet” function the same way you did the “checkNew”.  You will most likely be prompted to authorize Google as well as authorize Twitter during this process.  Go ahead and do that.  Sometimes I have found that the first time you run it you will need to authorize Google, then you will need to run it again to authorize Twitter.  Once both applications are authorized your tweet should have been sent out!

So this is all great, everything is working.  Now to setup triggers for these functions as running them manually doesn’t make much sense.  To get into your triggers select Resources->All your triggers from the script editor.

triggers

As you can see I have set up two.  One that runs my checkNew function every 30 minutes – if it finds a newly inserted row from IFTTT it will build the tweet for me.  The other, sendTweet runs once an hour – this will simply take one of the tweets and send it out!  This way, if there are tweets available it will tweet just one per hour, so I don’t flood everyone with tweets!

And that’s that!  I know this was a long winded post but I wanted to convey what I was trying to accomplish and how I did it!  Hopefully some of you find it useful if you are looking to deploy a similar type solution.  There is a ton of great content out there and this is just my part on helping to spread the good word within the virtualization community.

If you are trying to get through this and need a little help don’t hesitate to reach out – I’m more than willing to help!  If you have any ideas on how to better this process I”d love to hear them as well.  The part currently nagging at me is that manual BlogTwitter sheet – not sure how this part could be automated or bettered but if you have ideas let me know…  Thanks for reading!  And sharing Smile

mwpreston at #VMworld

With less than a week until the big show and only three days before I hop into the big tin can to get there I thought a post in regards to my “planned” VMworld experience is in order!  I say planned since VMworld is always a crazy experience and things can change quickly with so much to do and learn. That said I do know of a few items in my calendar that are set in stone!

Opening Acts

This is a great idea for a conference primer that is taking place this year!  The VMunderground team, along with the vBrownbag crew have set the stage for some great knowledge dropping fun Sunday before VMworld.  I’m happy to say that I will be taking a spot on the last panel of the day, dealing with Architecture and Infrastructure.  Needless to say I’m excited to be taking part but what I’m most excited about is the other rockstars I’ll be sitting next to – Melissa Palmer (@vmiss), Phoummaia Schmitt (@exchangegoddess), Maish Saidel-Keesing (@maishsk) and John Arrasjid (@vcdx001) and moderated by Matt Liebowitz (@mattliebowitz).  Umm, yeah, you read that right – the FIRST VCDX!  I’ll certainly be sitting on the shoulders of giants during this one and hopefully have a little to contribute, but am mostly looking forwarded to learning from the best!.  Opening acts kicks off at 1PM at City View at Metreon with our panel starting at 3pm.

Book Signing

Yeah, so not only do I get to partake in a panel session with some of the brightest virtualization minds in the world, I get to also sit down and sign books for a half an hour – Each and every VMworld experience seems to be topping the previous ever since I’ve been attending.  Anyways, I’ll be at the VMworld bookstore from 1:00PM to 1:30PM on Tuesday if you want to have  your copy of Troubleshooting vSphere Storage signed.  Honestly, this is a first for me so I have no idea what to write in a book and Google hasn’t been much of a help with this one!  Either way, if you want the book signed, any other book signed Smile, or just want to chat come on by and I’ll be there!

Other Stuff

booksHey, I’ll also have a dozen or so copies of Troubleshooting vSphere Storage to give away so if you are looking for one come and find me – I may have one on me at the time and if I do it’s yours!  Where might you find me?  Well, you can bet your a$$ that I will be at VMunderground on Sunday!  Monday, probably the VMUG leader reception and vFlipcup.  Tuesday, VMUG leader lunch, the vExpert reception, CTO party, Veeam – ugh!  Exhausted just thinking about all of this!  Wednesday I will be sure to hit up the VMware Canada reception eh!  Then move on to of course, the VMworld party!!!  Also you can find me in the hang space and blogger tables periodically throughout the conference.

stickers

On another note, I have a ton of these mwpreston dot net stickers to hand out as well (Don’t worry, I’ll cut them) – I’ll probably just scatter them throughout the place but if you can’t find one and really really want one for some odd reason, just ask!   It’s my crazy shameless self promotion plug of a way of saying thank you to all of you for making this blog what it is today!

Anyways, there’s lots to do and lots to pack so I’ll leave it at this!  Can’t wait to see everyone again – the community really makes the VMworld experience for me – if not for community, it’d just be another conference!

Asus Nexus 7 Giveaway courtesy of vSphere-land and Veeam

Nexus-7-2013

Say what!?!?!  You are giving a way an Asus Nexus 7 tablet?!?  Why yes, yes I am!  Aside from landing myself #20 on the Top Virtualization blogs at vSphere-land.com I also won myself a pretty sweet Nexus 7 tablet as well as one to giveaway to one of you fine folk.

You can thank the great people over at Veeam once again for this giveaway!  They sponsored this years blog voting with some awesome prizes including Sony headphones, Chromecasts, Pebble watches, Jockery Batteries and the Nexus 7 tablets.  Also, don't forget to reach out to Eric Siebert and thank him as well!  I know he puts countless hours into the blog voting – so let him know how much you appreciate it!

What is an Asus Nexus 7?

In its essence it's a 7 inch android tablet.  The real benefit though comes in the name Nexus, simply meaning you are getting a stock version of the Android OS – meaning they are free from all the bloatware or manufacture modifications and you will receive your software updates directly from Google, without reliance on the manufacturer.

As far as specifications go I'll let you check them out for yourself – but from what I've read the ASUS Nexus 7 really hits it home when it comes to design, display, and performance – so what more can you really ask for?

How to enter?

I didn’t feel like making this one too complicated – just leave a comment on this post.  What to comment on?!?!  It’s up to you really – talk about the significance of the number 20, tell the world something they don’t know about you, tell me how great the Habs are and how they are going to take home Lord Stanley, throw in a #ScottLoweFact, simply just bang away on your keyboard – your choice really!  Feel free to go ahead an use a fake email if you wish, but if I can't get a hold of you I'll just draw another name.  I’ll tally up the comments and have a random number generator give me the winner!  This contest will close at 11:59 PM EST on Thursday, April 24th so the clock is ticking!  Good luck!

vExpert – Third times a charm!

I'm happy to announce that I have once again been awarded the vExpert status for the year 2014.  Being a vExpert is important to me, not for the licenses or perks that come with the title, but for the networking and learning opportunities that arise throughout the year.

Every year at VMworld John Troyer (@jtroyer) and Cory Romero (@vCommunityGuy) put together a vExpert/VCDX reception.  Just think about cramming a couple hundred vExperts/VCDX's into a room with free beer for a couple of hours – certainly any virtualization issue you have can be easily resolved within those 4 walls.   If I weren't a vExpert I most likely, well, I know for sure I wouldn't have received invites to the last two CTO parties in which I've had the opportunity to meet and speak with a couple of lesser known guys like ohhh Stephen Herrod and Pat Gelsinger 🙂  Need proof?  Here's your Toronto VMUG leadership team with our best buddy Pat.

to-vmug-gelsinger

The best part about being a vExpert which really doesn't directly relate to being a vExpert at all ( I know, that makes no sense, just bare with me) is how it has opened up the doors for some lifelong friendships.  While going through the motions of what it takes to be a vExpert; engaging with the community, sharing knowledge, presenting and evangelizing I have met a lot of people who truly inspire me and I'm lucky to be able to call a friend.  I've had the chance to form a great friendship with guys like Jason Langer and participate within the #vDB (These are some of the greatest guys I know), and also follow the lead of fellow Canadian vExperts like Angelo Luciani and Eric Wright.  Speaking of those last two names – if anyone does community right it's got to be Angelo and Eric.  The dedication these guys have to the community is amazing – Eric, a dedicated blogger with a great insight on IT, always willing to stand up and share what he is thinking. And Angelo, who you can see the excitement in his eyes just to be amongst the community in the hang space at VMworld, truly cares about the community and brining people together. These are definitely two of the biggest supporters I have had over the years.  These friendships extend far beyond the VMware community and I hope will exist long after 'the next big thing' comes and disrupts the datacenter!

Anyways, I'm starting to get off topic now and I'm also beginning to sound like a 13 year old girl, so I'll stop name dropping now!  Congrats to all the new and returning vExperts and thanks to everyone for their support over the years.  A huge animal style thanks to John and Corey for organizing and 'herding the cats' again this year.  And the biggest thanks goes out to you, the community, for all the feedback and encouragement you have given me over the last year.   I'm thrilled to once again be named a vExpert!