November 2009
Mon Tue Wed Thu Fri Sat Sun
« Oct   Dec »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Month November 2009

SQL Server Presenters on Twitter

I put out a call a while back for a list of SQL Server presenters who are on twitter. A fair number of people responded. I kept it quiet because I was busy doing my day job, but I was secretly plotting… Plotting to put this list together and share it worth the world! (evil laughter)

Not only did I put this list on my blog, I also put it on twitter. Behold, my SQL Server presenters twitter list.

I will be trying to maintain this list as more people come get on twitter and become willing to share their twitter info. I wish that I could give this twitter list over to the community to maintain, but I am more than willing to take list maintenance on until there’s a way to trade list ownership on twitter.

The whole point of the list is to make it easy to find presenters and presentations, both for the future needs of a user group as well as for your immediate needs (e.g. your speaker cancels at the last minute).

If you’d like to get on the list, hit me up on twitter or shoot me an email via the contact page.

Josef Richberg @sqlrunner
Brent Ozar @BrentO
Thomas LaRock @sqlrockstar
Kendal Van Dyke @sqldba
Tim Ford @sqlagentman
Lara Rubbelke @sqlgal
TJay Belt @tjaybelt
Todd McDermid @Todd_McDermid
Jack Corbett @unclebiguns
Kevin Kline @kekline
Colin Stasiuk @BenchmarkIT
Trevor Barkhouse @SQLServerSleuth
Ken Simmons @kensimmons
Aaron Nelson @sqlvariant
Jorge Segarra @SQLChicken
Joe Webb @JoeWebb
Glenn Berry @GlennAlanBerry
Pinal Dave @PinalDave
Sean McCown @MidnightDBA
Jonathan Kehayias @SQLSarg
Tim Mitchell @Tim_Mitchell
Eric Humphrey @lotsahelp
Artemakis Artemiou @artemakis
Wes Brown @WesBrownSQL
Aaron Bertrand @AaronBertrand
Adam Machanic @AdamMachanic
Jimmy May @aspiringgeek
Rob Farley @rob_farley
Brad Hurley @bradohurley
Rick Heiges @heigesr2
Chris Randall @cfrandall
Stuart Ainsworth @stuarta
Mladen Prajdic @mladenprajdic
K. Brian Kelley @kbriankelley
Arnie Rowland @Arnie1568
Buck Woody @BuckWoody
Ross Mistry @RossMistry
Grant Fritchey @GFritchey
Rod Colledge @rodcolledge
Denny Cherry @mrdenny
John Sterrett @johnsterrett

Links for the Week 2009.11.20

Bonus link dump week! Since I haven’t done one of these in several weeks, some of these links go all the way back to October 29th, enjoy.

SQL Server

Development

Stuff & Things

GUIDs: Not Necessarily Unique

So, you though that GUIDs were supposed to be unique, eh? You aren’t alone. A lot of people assume that GUIDs are unique. Hell, unique is in the name!

On Friday, I had a bug report filed about a UNIQUE constraint violation. Seeing as how I had bigger fish to fry, and this functionality is only rarely used, I put it aside until this morning when I took a closer look at the bug report and the code in question.

The table in question looks something like this:

CREATE TABLE dbo.Widget
(
  WidgetId BIGINT IDENTITY(1,1) NOT NULL,
  -- other columns
  LegacyIdentifier VARCHAR(50) NOT NULL
);

Before I get yelled at for a VARCHAR(50) in my database let me assure that this is actually a 50 character random garbage string from our legacy COBOl application. Nobody got lazy and just made a VARCHAR(50)… this time.

LegacyIdentifier has a unique constraint on it because all of the Widgets need to be unique between the new system and the old system. In order to keep this uniqueness going I thought to myself, “I know, the U in GUID stands for Unique, I’ll use that since I’m not clustering on it.” I wrote a little piece of code that puts “New_” at the beginning of a GUID and then uses that string as the LegacyIdentifier. That was about 11 months ago. On Friday, we received an exception warning that the application had attempted to insert a duplicate value into the LegacyIdentifier column.

What now? Well, I’m not sure. I’m going to implement functionality to force the database to keep generating GUIDs and attempting inserts until it actually generates a unique GUID.

This solution doesn’t make me happy, though, because GUIDs are not unique. A GUID is, in theory, unique. There are, after all, 2^128 possible permutations, so the probability of the same GUID being generated twice are incredibly slim. However, it can happen. (SQL Server uses a V4 GUID algorithm, which is a pseudo-random number and, as such, is not truly random. Newer GUID algorithms use an SHA hash for randomness, but how random is random?)

What are we to do when we need a truly unique identifier? Frankly, I’m not sure. The thought crossed my mind of generating a random number and casting it to VARCHAR and appending it to the GUID. The statistical likelihood of generating two random values that are the same as a prior value is so astronomically low that I should probably buy lottery tickets if there is ever a collision. As it stands right now, I’ve opted to retry the insert until it actually succeeds (or for 5 times, after which the user is doomed).

So, there you have it, GUIDs are not guaranteed to be unique and you should plan accordingly.

Shameless Self Promotion

or How to get Yourself Adopted from the Animal Shelter

A Trip to the Humane Society

Way back in 2001, I took a trip to the local humane society. Ostensibly, I was going there with my girlfriend at the time to look at kittens. We were resolved about not getting a cat that day. This story wouldn’t be interesting if we didn’t get a cat, so I’ll spoil the ending for you and let you know that we did take a cat home that day.

I don’t know if you’ve ever taken the time to visit your local humane society, but I will let you know that it is a series of cages filled with the cutest animals you have ever seen. The kittens are particularly cute balls of fuzz that either nap in a ball of kittens, meow in a pile of kittens, or frolic in some kind of tumbleweed of kittens. On that magical day, my normally cold heart was warmed by frolicking kittens and I took one of them out of a cage and brought her to one of the little rooms where you can acclimatize to an animal and make sure it isn’t going to try to claw your face off.

Sure enough, this kitten did not want to claw my face off. Instead she wanted to run in circles, meow, rub up against my leg and beg for attention. The very reason I pulled her out of her cage was because she was perched at the very front of the cage, waving one tiny paw through the bars, crying for attention. In short, she was a vocal kitten.

The Pay Off – For Someone

Eight years later, I still have that kitten, although she has grown to be the largest cat I have ever seen. If you are reading this after 5 PM Eastern time, there is a very good change that this cat is perched behind my head on the back of my desk chair. She still gets a lot of attention because she still calls out for attention – she shows me the toys she has “killed”, the socks she has shredded, and makes me aware of the random other things that cats do when people aren’t watching.

The point is that she knows how to get the attention and praise that she wants. Over the years she has learned the most effective ways to annoy the heck out of me and still get a positive response. Because my cat demands my attention, she gets it.

What Does This Have to do With Anything?

The point is – if my cat can figure out how to get attention and praise, you can get attention and praise (or free tuna). More appropriately: you can make your accomplishments known and profit from them.

Your Accomplishments

First off, it’s important that you start keeping track of your accomplishments. A few months ago, I mentioned making a personal development plan. One of the things in your PDP should be a list of your accomplishments. It’s going to be silly for you to make a list of your accomplishments once a year. Instead, I keep a list of my accomplishments in a text file. You could just as easily use a spreadsheet, One Note, Outlook, or any other record system. The point is that you’re recording your accomplishments.

Record and Review

Any time I do something that I’m particularly proud of, I add it to this list. If I’m not at home, I’ll send my self a reminder email from my phone to add whatever I’m pleased about to my list. The key about my approach is to record everything that you do and review it later. Don’t think, just record it. Did you fix a server and resolve a production outage in 30 minutes when it could have taken 24 hours? Record it. Re-write a stored procedure to use 95% fewer reads? Record it. Save the company $10,000,000 by shipping flanging skrill production to Denmark? Record it.

The point is, you’re recording it. You can filter it later.

I like to review this list of accomplishments weekly, at the very least. This keeps my recent accomplishments fresh in my mind and it helps me focus on my goals. A lot of the time, I’ll open up a copy of my PDP and have it in front of my while I review my goals. This not only helps me determine if I’m on the right track to meeting my goals, it also helps me keep track of whether or not my long-term goals and my current situation are aligned. This also gives me the chance to revise my PDP as the year goes on, rather than marching forward foolishly thinking that my goals from three months ago are still one hundred percent valid.

At the end of the day, you won’t get anywhere without making people aware of you, what you’ve done, and what you expect in return.

Volunteering with PASS

The PASS Summit just wrapped up and I’m riding a giant wave of excitement about the entire organization, not just the summit. I met so many great people over the last week who were excited to be a part of PASS. On top of that, there were even more people who asked how they could get involved in PASS.

Locally

You can start off by volunteering locally. This is probably the easiest way to get involved with the organization. If there is a local chapter or user group in your area, contact the person in charge and find out how you can help. User groups always need someone to set up before meetings, call sponsors and ask for money or swag, book speakers, or maintain the web site. The work isn’t always full of glory, but no volunteering work is. If you don’t enjoy what you’re doing, don’t despair. There are a lot of other things you can do locally, just talk to the leader of the user group and find another way to help out.

Of course, if there isn’t a user group in your area, you could always call PASS HQ and find out how to start up a PASS chapter. I’m not going to lie and say that it’s an easy process because it isn’t. This is how I got involved in PASS, I can tell you that it’s been a lot of hard work but it has been incredibly rewarding.

Virtually

In addition to the local chapters, PASS has a number of Virtual Chapters. What is a Virtual Chapter? A Virtual Chapter is similar to a physical chapter, it just meets virtually. The Virtual Chapters are currently focused on specific topics within SQL Server – Database Administration, Database Development, Business Intelligence, Virtualization, to name a few. Just like the physical chapters and user groups, Virtual Chapters need volunteers to find speakers, sponsors, and market the user group meetings. If there is a particular Virtual Chapter that you would like to work with, contact the person in charge of the Virtual Chapter, the Board member in charge of Virtual Chapters, or PASS HQ.

Internationally

So you’d like to help PASS out on the international scene, eh? Maybe you want to work on something for the Summit, maybe you want to make the PASS website better, maybe you know that you want to help on a grander scale but you don’t know where to start. If that’s the case, you should definitely call PASS HQ and tell them that you would love to help, but you’re not sure where to get started.

There are two ways to get involved on the international stage – task based volunteering and project based volunteering.

Task Based Volunteering

Task based volunteering is, in many ways, the easiest way to get involved with PASS at the international level. You are paired up with someone at PASS HQ, a Board member, or another volunteer who gives you a specific task to accomplish. Then, hopefully, you do it and report back. It’s just that simple. If you aren’t sure how much time you have, this is probably the best way to get started – you can test the waters and see how this whole volunteering thing sits with you and make sure that you have the time to do it. If you don’t have the time, you can finish up what you’re working on and stop there. You can always come back once you have more time. Nobody will fault you for that.

Project Based Volunteering

This is it: you love PASS and you’re in it for the long haul. Well, you don’t need to be that enthusiastic, but it helps. Project based volunteering is very long term and is best suited for people who want to have a constant level of involvement with PASS. An example of this is the Summit Programming Committee. These volunteers work tirelessly from April until the last day of the Summit reviewing session abstracts and making sure that Summit attendees get top notch speakers and presentations. If you’re interested in this sort of thing, get in touch with PASS HQ. Board members have specific portfolios and initiatives that they are tasked with – you can take a look at the Board of Directors page and determine which projects you would might like to get involved with. If there’s something that catches your eye, get in touch with that board member and tell them that you would like to help out. I’m sure they’ll appreciate it.

So, Remind Me – How Can I Help Out?

There are four main ways you can help out: locally, virtually, specific tasks, and special projects.

If you want to help out locally, contact your local chapter leader.

If you want to help out virtually, contact the virtual chapter leader, board member, or call PASS HQ.

Finally, if you would like to help out with specific tasks or special projects you’ll want to call PASS HQ or talk directly to a board member or the volunteer in charge of a specific project.

LiveMeeting Tips and Tricks

As a virtual chapter leader and presenter I end up using LiveMeeting quite a good deal. I also like to attend PASS meetings through LiveMeeting (free learning is free and learning). As I’ve presented and talked to other presenters, I’ve amassed a list of feedback, tips, and tricks for successfully using LiveMeeting.

  • Make sure you’re in a quiet place – You may not notice barking dogs, noisy cube neighbors on speakerphone, or a stereo on in the background, but these things can be distracting for the audience.
  • Lower your display resolution to 1024 x 768 – most people are watching this in a window or on their work computer or both. In my experience, work computers have low resolutions. My personal laptop has a 13 inch display at 1280 x 800 pixels.
  • Reboot your computer and only start the programs you need for your presentation – PowerPoint and SSMS, for example. Close everything you don’t need. Close all of the tray apps you don’t need. Shut down every service that you don’t need. Your computer is doing some heavy duty audio and video encoding and you don’t need anything else potentially eating up your CPU.
  • Increase your Visual Studio/SSMS font sizes to at least a 12pt font.
  • Upload your slide deck – click Content -> Upload a File. Your attendees will get much better results if you just upload the slide deck instead. This will fill their monitor, unlike your display which probably won’t match theirs. The downside: you won’t have your slide notes, so print those out ahead of time. Event when I’m presenting in person I do this, just in case I can’t get my laptop and the projector to play nicely and I have to mirror my display.
  • If you have multiple monitors and you want to share a single program, it needs to be on the primary display.
  • If you’re using the video conferencing feature, turn of any lights behind you and turn on lights in front of you. I also set my desktop background to a pure white background. This will light up your face and make you appear less like a member of the witness protection program.
  • Turn of your cell phone. Ever get a goofy galloping noise on your speakers at home? That’s the magic of GSM. That will play havoc with the audio in your LiveMeeting.
  • Speaking of phones – make sure your cellular or cordless phone is fully charged. Have a backup plan. This, of course, does not apply if you are using LiveMeeting’s audio stream.
  • Use throat lozenges to keep your voice working, especially if you are presenting or recording multiple sessions on a single day. Coffee will not do wonders for your voice.
  • Install LiveMeeting in advance. Preferably several days in advance. It takes about 10 minutes to install on a good day, so give yourself plenty of time.
  • Put a note in the slide notes every few slides that simply says “stop and ask for questions”. At that point in the presentation, click the Q&A button at the top of the screen and click Manage. You’ll see everybody’s questions. Remind the audience that they can ask questions throughout the presentation by clicking Q&A at the top of their screen.
  • If you have two computers, set them both up as presenters, but mute the audio on your secondary one. Then if all hell breaks loose, you can switch laptops and keep going.

Special thanks to Brent Ozar for collaborating on this list of tips. Do you have any LiveMeeting tips that you would like to share? Spread the love in the comments!

Bonus Tip: Use basic fonts for maximum readability – Core fonts for the Web

This site is protected with Urban Giraffe's plugin 'HTML Purified' and Edward Z. Yang's Powered by HTML Purifier. 230 items have been purified.