April 2014 Louisville .NET Meetup

Friday, April 18 2014         No Comments

Thanks to Chad Green (lead organizer of the Louisville .NET Meetup group as well as the Chief cat herder for Code PaLOUsa) for having me down to speak at the user group last night.  Thanks, also, to all the folks who came to meeting.  As usual when I visit the Louisville community it was incredibly hospitable and a fun group to hang out with.

I promised that I would post up the links from the end of my slides and here they are:

Mobile Services:

BLOB Storage:

Notification Hubs:

Stir Trek 2014

Friday, April 04 2014         No Comments

Thanks for all those that came out to Stir Trek, and especially thanks to those that came to my session.  I won’t be able to stick around for the movie since I’ll be watching it soon with my wife so please, don’t send me spoilers!

Here is a set of resources that were also mentioned in the talk you can use when learning to automate Microsoft Azure with PowerShell:


UPDATE: Added link to Azure Automation resource.

Recorded for Hallway Conversations Podcast

Tuesday, April 01 2014         No Comments

I was recorded for a “Hallway Conversations” podcast recently and it’s now been posted!

I realized later that I said Azure Web Sites had three tiers of “Free, Basic and Standard”.  That should have been “Free, Shared and Standard”.  I was confusing the tier names from the Mobile Services offerings.

Thanks to Phil, Steve and Lee for having me on.

Webinar on April 9th–Azure Diagnostics

Tuesday, April 01 2014         No Comments

On Wednesday, April 9th, 2014 at 11:00 AM PDT I’ll be working with Michael Collier to host a joint webinar on Azure Diagnostics.  We’ll cover ways you can configure diagnostics for Cloud Services, some good practices to follow and some things to keep in mind based on experience.

Please Register for the webinar and also pass long the link to any of your coworkers or clients who may have an interest in Azure Diagnostics.

SQL Saturday coming to Louisville

Friday, February 28 2014         No Comments

SQL Saturday #286 will be held on June 21st, 2014 at the Indiana Wesleyan University in Louisville, KY.  It looks like it will be a great chance to learn about SQL Server.  There is a list of the submitted talks they have received so far on their schedule page (not all will be selected).  Once the full schedule is decided they will post it.

Grant Fritchey (also known as the Scary DBA) will be in town as well giving a Query Performance Tuning class the day before.

The SQL Saturday event is looking for sponsors

Code PaLOUsa 2014–Intro to Windows Azure Workshop

Sunday, February 23 2014         No Comments

In the Introduction to Windows Azure workshop we will do some hands on work with the core features of Windows Azure: Storage, Web Sites, Cloud Services and Virtual Machines.

To participate in these hands on labs you’ll need to have a Windows Azure Account.

You can get a free trial account ( http://www.windowsazure.com/en-us/pricing/free-trial-b/ ) or, if you have a MSDN subscription, you can sign up for your Windows Azure benefits ( http://www.windowsazure.com/en-us/pricing/member-offers/msdn-benefits/ ) and use those. Please have the account already set up when you arrive. Note, you may get prompted for your credit card when creating the account, but the trial accounts have a spending cap of $0.00 on them by default.

In order to get the most out of the hands on labs please come with the following installed:

This can be a decent amount to install, so please have it set up when you arrive. You may not have enough time to get all of this set up on the day of the workshop. If you don’t have the hardware or time to install this, don’t worry, we’ll do some pairing. 

Not a Microsoft developer or Windows user?

You’ll be able to participate in some of the labs as well. Please make sure to come with the following installed:

If you want to do Git-based deployments to Windows Azure Web Sites, you'll want to download Git. Do so at http://git-scm.com/download or get the GitHub for Windows client ( https://help.github.com/articles/set-up-git ).

Did I Leave a VM on?

Saturday, February 15 2014         No Comments

Ever wrap up a demo or end a day of development work and wonder if you left a VM running in Azure?  Yep, I’ve done that.  I’ve also NOT wondered about it, completely forget even, and ended up running a VM for some time without thinking about it.  I have two subscriptions I routinely use for demos and development and for the most part have no reason to have cores running in those subscriptions if I’m not actively doing something.  A real quick PowerShell script let’s me know at the end of the day if something is up or not.

Get-AzureSubscription -ExtendedDetails | ? { $_.CurrentCoreCount -gt 0 } | ft -Property  SubscriptionName, CurrentCoreCount


I’ve put this into my PowerShell Profile as a function named Get-CoreCount.  It doesn’t tell me what is running, or where, but I will recognize subscription names that shouldn’t have anything going.  If I see something I don’t expect I’ll spin up Azure Management Studio to take a look and take action if necessary.

Now…did I leave the gas on at the house?

Cloud Design Patterns

Sunday, February 09 2014         No Comments

The Microsoft Patterns and Practices group has release a new guidance package on Cloud Design Patterns.  The public announcement can be found on Masashi’s blog.  I had the opportunity to help out with this project as a Technical Reviewer of the material.  It was a great opportunity and I thank Masashi and the team for it.

The material covers 24 different design patterns, along with 8 guidance topics and 10 different code samples.

You can see the material and download the sample code from MSDN.

Hackathon–Incorporating Windows Azure into your Mobile Apps and Games

Saturday, February 08 2014         No Comments

Thanks to all those that came out to the Columbus Dev Unleashed hackathon for Windows Phone and Windows Store apps.  I showed off using BLOB Storage, Mobile Services and Notification Hubs in my segment of the day.  If you have an interest in any of these, this is the promised list of links that point to  articles, Microsoft documentation and tutorials for each of these features of Windows Azure.

Introduction to BLOB Storage: http://bit.ly/blobstoreintro

Mobile Services Team Blog: http://bit.ly/wazmobile

Custom API: http://bit.ly/wazmobilescripts

Source Control: http://bit.ly/wazmobilegit

Server Side objects: http://bit.ly/wazmobileref

Notification Hubs: http://bit.ly/waznhub

Troubleshoot Notifications: http://bit.ly/notifydebug

Live Tile and Notification templates: http://bit.ly/waztile


Thanks to the Windows and Cloud user groups of Columbus for hosting this event!


Note to future self: If you turn on Presentation mode on Windows during your talk it will quietly turn off ALL notifications.  Including the one you are trying to demo.  DOH!

Speaker Wanted: Improved Communications between Speakers and User Group Leaders

Monday, February 03 2014         3 Comments

I’ve been giving technical presentations ever since Mike Levy conned me into one back in the early 2000.  I got into speaking more heavily around 2005.  I don’t recall when now, but things really kicked off when I did a “tour” of Michigan hitting user groups in Ann Arbor, Grand Rapids and Flint.  Since then I’ve been lucky enough to speak at user groups and conferences all over the heartland of the US, and even conferences overseas.

Also during these early years I was helping Nino Benvenuti and James Avery run the Cincinnati .NET Users Group.  One of my roles in the group was to help coordinate speakers for the group: trying to rope people in to speak, dealing with INETA, coordinating dates, etc.  Then there were the Cincinnati/Dayton (sorry Jim) Code Camps where I helped arrange speakers for a one day event.

All this to say, I’ve been on both sides of the equation: A speaker looking for places to speak, and as a user group leader or event organizer working with speakers.  I’ve been on the side of having to tell folks their talk wasn’t accepted and, many times, I’ve been the one receiving the “Dear Speaker” email telling me that I wasn’t selected.  This post was triggered by a request that Shawn Wildermuth posted to the SPEAK .NET forums in which he requested that user group leaders requesting speaker provide as much information as possible.  Some of the comments by Shawn and others (Jeff and Dave Methvin) from that thread are included here, along with my own thoughts on how the communication between speaker and organizer could be improved.  I can’t say I’ve always done these things (on either side), but when I have they have been very helpful.


As a Speaker

If you are a speaker looking for a user group to speak at you’ll find that the more open you are, and the more communication you have with the meeting organizers the better your life is going to be.

When you send an unsolicited email to a user group leader to request to come speak at their group make sure you:

  • Properly introduce yourself and provide a link to your LinkedIn, Twitter, and/or blog.  This helps the user group leader see how you are and if you know any of the same people.
  • Indicate if you have spoken at other user groups or conferences and provide links.  If you haven’t spoken anywhere then don’t hide that fact.  Be up front.  I know several user groups that would be happy to have a first time speaker.  CINNUG did grok talks for this purpose.  These were 10-15 minute talks so that new speakers could start small.
  • Do some research on when the meetings are and offer dates that you don’t see on the calendar that fit your schedule.  Provide exact dates, don’t say “your March meeting”. 
  • If you notice the group has a consistent meeting pattern then don’t assume it can be changed just for you.  If at all possible try to arrange for their normal night.  When normal meeting nights get moved you’re bound to get less attendance because it’s off schedule (this probably isn’t true if your last name is Skeet, Hanselman or Guthrie).  Some groups move their meetings a lot, so it is no big deal to them.  Others are dead consistent all the time.  The times I’ve worked out with a group for a meeting to be moved for one reason or another I’ve always assumed that less people will come to see it.
  • Provide one or more talks you are prepared to give.  You can provide full abstracts or simply start off with broad topics until you find out if the group is interested.  Either way, BEFORE you supply your abstracts read this: http://frazzleddad.blogspot.com/2009/10/writing-good-session-abstract.html.
  • Make sure to indicate the city or region you live in.  This helps the user group leader know where you’ll be coming from.  A lesson I learned many years ago was to not book out of town speakers in November, January or February.  Weather was too unpredictable.

If you get a user group leader interested in having you in, continue the conversation and provide even more information:

  • Once you have travel arrangements made make sure to share them with the group leaders.  Ask about travel distances or bad traffic around the meeting times.  For example, I’d suggest if you are coming in to speak at CINNUG and you are arriving at the local airport (CVG) you should try to schedule your flight to arrive before 3:30-4:00 PM.  Anything after that and you’ll tack on an extra 20-25 minutes in traffic to reach the meeting.
  • Give the leaders your phone number that they can reach you at during your travels.
  • Make sure you get the contact information of the leaders so that if something happens you can tell them immediately.
  • Make sure they have everything they need to help promote your talk.  Ensure you send your full abstract and bios at least 2 months out if all possible.  Some groups will post upcoming meetings well in advance, or include them in newsletters.  You want as much time as possible for people to know your topic is coming up so that they can plan for it if it interests them.
  • If you see the group promoting your talk via twitter or their website, retweet and link to it (you should be promoting it anyway).
  • Send an email about a week out from the event to verify that everything is still good and see if there are any last minute details you need to know.  See the list of things suggested below for a user group leader to share with speakers and if they haven’t offered this stuff up, ask about it.
  • If you plan on recording yourself at the meeting (either for yourself or other reasons) make sure the user group leader is aware of that and approves it.

Once the meeting rolls around you can keep the conversation up by:

  • Sending an email, text or tweet to the user group leaders when you start your travels.  This helps them judge roughly when you’ll be arriving.
  • If you run into any problems while traveling immediately let the group leaders know if at all possible. 
  • If you want to get honest feedback for the talk ask the user group leader to take notes during your session on their thoughts.  They may not be comfortable with this, so you can also ask if they could recommend someone at the meeting that could do so.  If you ask for honest feedback, be ready to get it.  Don’t get defensive if you hear bad things.  Take it in and try to get to the root of why the criticism was given.
  • Show up ahead of time. If you can help it don’t arrive 10 minutes before your talk.  Try at least 45 minutes or at a time that is helpful to the group leader.  This make the user group leader’s life easier (less panic) and it gives you time to see the venue, test your connections, etc.

Finally, after the event make sure you:

  • Follow up with the user group leader to provide them links to your resources and materials if possible.  If you want them to link to your site for that just give them the links.  If you are okay with them posting the materials to their sites, indicate that as well.
  • Follow up on your blog or through other means on any questions you received during the session or via twitter afterwards. 
  • Send a thank you to the user group leader.  They hosted your talk and provided you a “podium” to talk from, that deserves a thank you. 


As a User Group Leader

If you are a user group leader or speaker coordinator there are a lot of things you could to help improve the communication with the speakers.  Some of what follows are simply ideas, some are things I’ve done in the past and some are communications I received that just stood out.

If you are requesting a speaker to come to your group, either through a personal invitation, or posting to a webpage or forum, please include as much information as you can:

  • Dates and location of the meeting.  Don’t just say, we have openings in Feb, March and April.  This will require the speaker to go find your website and try to deduce if your meetings are actually consistently held on the same nights each month.  In fact, even if you do hold them consistently on the third Tuesday of every month, include the dates anyway.  If you can be flexible on when dates are, indicate that as well.
  • Is there any travel expenses compensation available?  Many times speakers are donating their time to not only come up with the content, but also traveling out of pocket.  In some cases they are even taking vacation time, or seriously juggling their schedules in order to speak.  This can get expensive quite quickly.  If your group doesn’t provide expenses that’s fine, in fact when I was helping run CINNUG I could count on one hand the number of times we actually paid for someone’s full expenses to come out to speak (and I don’t need any fingers either).  Just be up front about it.  Also, note that there are groups out there that can help, like the INETA speaker’s bureau, as well as local sponsors and industry companies who believe deeply in Community (like Red Gate, Telerik and more).  These groups can help get you money or offset costs to bring in speakers, or even help find speakers who don’t need the help.
  • Include the average length of session you want a speaker to give, or perhaps include an agenda of one of your normal meetings.  This tells the speaker how much material they need to have.  Some groups do 60 minutes, some do 90 minutes.  At CINNUG we do the announcements (5-10 mins), followed by the main presentation (60-80 mins), then we eat Pizza and have a social time (20-30 mins).  Finally, we wrap up the meeting with an open discussion or grok talk (20-30 mins).
  • Include the average number of attendees you normally get.  This is a sticky one because I’ve heard people say, “but no one will come speak if there are only 5 people”.  True, that low of a turn out might not get someone to drive six hours one way to come speak, but there are other ways around this.  We live in a virtual world and with Skype, Lync, WebEx or <pick your teleconference software of choice> you can still have someone speak to the group no matter how small, all from the comfort of their own home.  Also, make sure that you indicate if the numbers dip during the timeframe (like summer or winter) when the speaker is coming.
  • Include the web address for your group or event.  This helps speakers see how else might have spoken at the group and what the topics have been (you are posting that information, right?).

After you get a speaker on board and you agree on the topic you’d be amazed at how helpful some information can be to a speaker from out of town.  Here are a few things you can include after you have gotten the conversation going:

  • The most important thing is for you to provide contact information, including a phone number, for any of the user group leaders.  This is especially important if the speaker is traveling in and doesn’t know their way around, or gets into trouble during the trip.  You want to know if they will be late or have to cancel at the last minute.
  • Get the physical address of the location to the speaker.  Look up the address on Google and Bing and see if the address actually shows up in the correct spot so that the speaker doesn’t have issues finding it. If these sites do show it incorrectly get the Latitude and Longitude coordinates and includes those along with the address.  Most people’s phones and GPS will get them there easily enough.
  • Provide the business or venue name as well.  A lot of speakers are consultants and many places that sponsor user groups are also consulting companies.  I’ve never seen any issues from this, but it’s nice to know if you’re going to be speaking at a competitors facilities.
  • Let the speaker know if the meeting location is not available until a certain time and if this is a location that they work if they arrive early or are coming in from out of town.  The wonderful folks at MAX Technical Training who have hosted the CINNUG group for years have always had their door open if a speaker arrived a few hours early and needed a place to camp out until the meeting.  There’s also a Panera right down the road.
  • Tell them what the general make up of the group is.  For example, if you have a ton of members in the financial services you can mention that, or if your group is heavily weighted to people just getting started.  This helps the speaker tailor their message and ensure their content is on target.
  • Let them know what hardware and speaking set up they can expect at the venue.  Good speakers will be prepared for the normal things like HDMI cables, VGA adapters, etc., but every little bit can help.  You could even send them a picture of the room you normally meet in.
  • If they are coming in from out of town give them an idea of the best place to stay, or more importantly, what areas of town that they should NOT stay in.  It also doesn’t hurt to throw in some ideas of things do do while they are in the area.  I’ve made a stop at one user group meeting during the outbound part of a family vacation.  The user group leader did a great job giving me ideas for what my wife and son could do while I was at the meeting and something we could go see the following day before we left town.
  • Let them know about any special parking arrangements, or just what the parking is like to begin with.  Especially if your group location doesn’t have its own parking this can be very important.
  • Let them know if the venue has any specific security procedures or policies.  I’ve heard of a speaker who arrived at a meeting to speak only to find out they weren’t allowed in.  The location had some policies that didn’t allow foreign nationals in due to some of the work they did on the premises.
  • Tell them what kind of food, if anything, is provided and when.  Some groups do food before the sessions, and some do it after or even in the middle.  If a speaker is traveling in and you don’t do food until after the meeting at 8:00 PM they may want to catch a quick snack or eat beforehand.  Likewise, if a group of folks generally go out to a local pub or restaurant afterwards let the speaker know about that as well, including how late most people stay around. 
  • Mention if anyone recently spoke on a similar topic.  For example, if the speaker is talking about some feature of Platform X you might mention that two months prior another speaker did an introduction to Platform X and mentioned (or didn’t) this feature. 
  • If you are going to stream or record the meeting in any way, make sure the speaker accepts this up front.  Some speakers just don’t want to be recorded and some even have legal agreements saying that they can’t be recorded giving specific materials. 


Once the speaker has arrived for the meeting make them feel as comfortable and welcome as you can.  For example you could:

  • Make sure they have water to drink during their presentation.
  • Make sure they get connected to the projector and don’t have need of anything before their session starts.
  • Tell them about “That guy|lady” in the group.  Almost every group has one.  This is someone who consistently derails presentations, asks questions that only they care about or simply can’t let a presenter complete their material without interjecting something.  You don’t have to point them out by, just make sure the speaker is aware they are there.  Experienced speakers will handle these folks on their own, but be ready to jump in to help.   You may even need to be ready head them off by asking a follow up question that puts the presentation back on track, or mention that the speaker might be available afterwards to talk about more detailed scenarios. 
  • Introduce the speaker with more than “so, Bob here came to speak to us.  Go for it.”.  If possible get a bio from the speaker and come up with at least two or three sentences to say in the way of announcing them.  Do this regardless of if you think the speaker is really well known or not.  This helps for three reasons.  One: the audience now knows who they are listening to.  Two: the speaker feels appreciated and welcome.  Three: you can tell the speaker you are doing this and they don’t have to go through their ego slides and can cut straight to the material.
  • Work out a signal with the speaker for when their time was getting close to being up.  When I was a user group leader my signal was standing in the back of the room in the doorway to the hall.  This was a quiet reminder that time was coming to an end. 
  • Make sure that some user group leader or a representative is in the room for the entire meeting.  I’ve heard of user group leaders leaving a meeting to make a call, etc., and the projector goes out or some other issue occurs that doesn’t get resolved until the user group leader returned.  Especially to new speakers this can be really, really stressful not to mention everyone’s time waiting for the issue to be resolved.


Finally, if you really want to help a speaker out and be a group that has speakers referring others to come speak at you might think about:

  • Take notes and comments about the presentation and share them with the speaker afterwards.  Be honest and supply constructive criticism.  Do this only if you are comfortable doing so and always ask if they want you to.
  • Make sure that the speaker’s name and topic are on your website promoting their upcoming talk and then post them in a past meetings  section for at least several months, if not a year or more.  This helps the speaker find additional groups to speak at since they can provide pointers to your group site as a type of “reference”.  It’s your call on if you actually supply a reference for a speaker or not, but it is extremely helpful for speakers to have this information still out there as they submit to other groups and to conferences.
  • Follow up with any comments you heard from the group, or ask for the speaker’s support materials to post a link to on your group site.   
  • Tell them how many attendees where there in total.  Speakers track this for many reasons.
  • Ask them if there was any ideas on what you could do better for other speakers.
  • Send them a thank you.  This doesn’t have to be a physical or actual gift.  The fact that you took time to thank them for coming says a lot.


What kinds of things can you think of that I didn’t include?