April 2009

Rube Goldberg would be proud…

This post is a bit of a rant; I spent the whole day trying to resolve a curious chain of events.  Basically, I wasted a day of development troubleshooting something stupid; hopefully, others will learn from my mistakes, and avoid the pain and suffering I experienced.

It all started with SQL Server 2008; we’re looking at migrating to it sometime this year, and I finally begged the production guys into letting this developer get a copy of it installed on my machine.  Seems to make sense, since I don’t know, I WRITE THE CODE THAT THEY RUN.  (sorry, a bit tense).  Anyhoo, I started the install.  All was going well, apart from the unusual hiccup with my Logitech web cam.  I eventually got it installed, started to play around with it, and then I noticed that I only had 1 GB of disk space free.

Sidebar: remember when 1GB was a HUGE amount of space?  Unfortunately, it ain’t much now, and my laptop is starting to suffer from too-much-crapitis.

Realizing that I was running out of space, I made the extremely stupid decision to uninstall SQL Server 2005 from my hard drive and free up a few gig.  SQL 2008 should be sufficient right?  I do very little development on my local box (we have dev servers for that), so I thought I would be safe.  How wrong I was.  The uninstall took about 30 minutes, a reboot later, and I get bugged by Dan about an issue with one of the database projects I checked in using VSTS:Database Professional.  I fire up Data Dude, and basically my laptop shot me the bird.  Apparently, VSTS REQUIRES an installation of SQL Server 2005 to run; SQL 2008 won’t do.

Sidebar: I realize that there is a new version of VSTS:Database Professional that doesn’t have this requirement, but until it’s official, I can’t have it (company policy).  Make it official, Microsoft, and you won’t get rants like these.  I’m warning you!  (insert mental picture of an ant shaking his fist at an elephant).

Since I had limited space to install, I chose to install SQL Server 2005 Express edition.  All went well, until the installer required a version of MSXML 6, and then it puked.  Why?  Because Windows XP Service Pack 3 installs a higher version of MSXML 6 then SQL Server 2005 does, and the SQL Server 2005 can’t write over the newer version, but nor will it accept the newer version as valid.  This is the computing equivalent of saying “I like cherry pie and I like whipped cream, but I don’t like cherry pie with whipped cream”.  I couldn’t install SSE 2005 until I uninstalled MSXML 6, and I couldn’t uninstall MSXML 6 without uninstalling Windows XP SP3.

Sidebar: Insert mental picture of ant and elephant again, only this time the ant is banging his head on the desk and crying while the elephant leaves a large steaming deposit nearby; the elephant’s not cruel, just oblivious to the ant’s peril.

Luckily, I found this post at support.microsoft.com, describing the use of the Windows Installer CleanUp utility to remove MSXML 6, without uninstalling XP SP3.  Dodged a bullet there, I thought to myself; instead, I stepped into a lawnmower blade.  I got SQL 2005 Express installed, fired up VSTS:DB Pro, and realized that I HAD THE WRONG VERSION (missing service packs; I had version 611, VSTS:DB Pro needed 612).  No big deal, right?  I’ll run Windows Update, get the missing service packs (since I was now on an old version of MSXML 6 anyway); bad idea.

Apparently, there’s been a lot of patches since XP SP3 was released, including a Service Pack for SQL 2008 (the cog that started this pinwheel); 900 Meg of patches to download, which wouldn’t be such a big deal except for the fact that my company has my connection capped at 512K.

Sidebar: The ant has just realized that it’s not entirely the elephant’s fault.  The queen ant has also made some strange policy decision that must be followed.  However, it’s much easier to blame the elephant, because it’s lonely without a job or an ant hill.  Stupid elephant; wise queen ant.

Anyway, at 3PM this afternoon (I clock out at 4PM),  I was able to answer Dan’s question.  Looking forward to another productive day tomorrow.

Reflections on my comfort zone

Spoke to a good friend today; a guy I haven’t seen in several years, but we exchange emails pretty regularly.  He’s been having a rough time this year: he lost his job earlier this year, and has been trying to find work to keep him afloat while he revamps his career.  He mentioned to me today that he was moving back to our hometown so that his kids would be near family while he gets thing sorted out.

Home is a comfort zone, and it’s the place to go when things are bad; while I support my friend, I did give him one piece of advice: don’t settle there.  It’s not a bad place to live, and I have lots of friends who are very happy to live there, but there’s a difference between making the decision to live someplace because you like the benefits (home, a small town life) and settling for a life because you’ve run into a wall elsewhere.  This guy and I always had the dream of leaving town; granted, we both thought life was going to be different than it turned out, but at least we both managed to get that part right.  We moved out, onward, and upward.  It’s OK to go back to visit, but don’t stay unless you’re sure you know why you’ve decided to stay.

As I was thinking about this, I realized how much I have settled in my own career.  I like my current job (lots of benefits), but I’ve gotten bored with the grind lately.  I’ve stopped challenging myself to learn something new, and have settled into the “same old, same old” because it’s easier that way.   While I continue to be productive, I haven’t grown professionally as a developer, and that’s not a good place to stay.  It’s OK to visit, but not OK to settle.

So today, I seize the day.  I go back to the lists of things to do, and I start ripping through them and challenge myself to learn something new. 

So you wanna host a SQLSaturday? Here’s my tale….

This is going to be a long post; definitely the longest I’ve written in a while, and probably longer than anything I’ve ever written.  So long, in fact, that I’ve toyed with the idea of breaking it into separate chunks.  However, I decided to keep it as one piece because I felt like someone out there may want to print it out, and I thought it would be easier if it were one post.   Before I get too deep with this, I have a few caveats; first, I am not an expert on SQLSaturday, nor am I the authority.  I’ve done one, and while I feel like it went well, there is always room for improvement.  If you really want to get to know about SQLSaturday, you need to contact Andy Warren and get a copy of his infamous checklists on things to accomplish.  I just wanted to write out some of my experiences and ideas in the spirit of sharing.  Second, my experiences may not jibe with your experiences, so don’t try to emulate me too closely.  I just happened to be in the right place at the right time for a lot of this, and you are probably in a different place (and most certainly a different time).

Anyway, on with the list; first, a little background.  SQLSaturday #13 was held April 25, 20009, at the Alpharetta, GA offices of Microsoft.  I first started talking about a SQLSaturday in September of 2008, and began actively planning it in January, 2009.  I did have a lot of emotional support (and opportunities to bounce ideas around) from the leadership of AtlantaMDF (as well as Andy Warren), but I did most of the logistical legwork myself.  I say this not to brag, but so that you understand how it came together.  Being the primary planner for this event was helpful to me because it let me understand where I could do better with delegation in the planning stages; I do need to say that on the day of the actual show, I had a huge team of volunteers who went above and beyond anything I could have asked.  I may have planned the attack; the volunteers carried it out.

Speaking of that, let’s talk about planning for a SQL Saturday:

1.  General principals

One thing I wish I had done a better job of was to keep asking myself the question: “How does this build the local SQL Server community?”   I think we had a great event, with great speakers, and great attendance, but if we didn’t build up the community, we wasted a lot of effort on a single day.   The point of a SQLSaturday (or any user-driven community development event) is that the local technical community should be built up AFTER the event is over.  Connections need to be made, networking should increase, new speakers should be encouraged to grow.  We accomplished some of that with SQLSaturday #13 (more on that later), but more could have been done.  Ideas include:

  • promote the heck out of the sponsoring user group; make sure that every attendee walks away knowing who the user group is, when they meet, where they meet, and how to contact them.
  • include Twitter/Facebook/LinkedIn directories as part of the event registration
  • have chalk-talks, ask the experts, or coding contests throughout the event to encourage people to share, and not just sit and listen.

 

2.  Delegate, but have a single decision maker

There are several roles that need to be fulfilled, both before the event and during the event; I’ll try to detail some of these, but always remember that you need a single decision maker at the top of the food chain.  During the event, when things happen, it’s far better to have someone make a quick (and accurate) decision than it is to try and negotiate or look to find someone who knows how it’s supposed to be handled.  In other words, if there’s a question about how prizes should be handled, and your prize master doesn’t know, they should go straight to the top.  So here’s my short list of roles, including a description and a time frame for their duties:

Event Coordinator: The event coordinator is the person in charge; they delegate authority to everyone else.  They need to be in on the process from the beginning of the planning stages, and they need to be familiar with all of the issues associated with implementing the show.  Where is the event going to be?  What date will it be?  What are you going to serve for lunch?  Are you going to have a lunch fee or not?

Sponsor Wrangler: This role is the money role; they’re responsible for two things: 1) find sponsors, and 2) keep the sponsors happy.  You keep sponsors happy by making sure that they feel like they’re getting a good value for their sponsorship (ideas on that later).  Sponsor Wranglers are also responsible for making sure that the sponsors keep up their responsibilities; your sponsors will have other obligations, and just like you can let something slip if you’re not careful, they can too.  Also remember that some sponsors will want to donate goods instead of financial support; it’s up to you to decide if that’s OK, but if you accept goods, the Sponsor Wrangler needs to make sure that those goods arrive in time for the event.

Speaker Wrangler: You gotta have talent for the SQLSaturday, and the Speaker Wrangler role lines that talent up.  Make sure you pay attention to point 1 above; you want to bring in enough talent to have a successful show, but you also want to foster community.  The Speaker Wrangler needs to seek out a mix of experienced and new talent, as well as try to get local and regional (or even national talent).  This role also needs to think about things like the speaker dinner, the speaker shirts, and getting the slides and code from the speakers after the event is over.

Volunteer Wrangler: No matter how many people you have helping you plan the event, you need a small army of volunteers to actually run it.  The Volunteer Wrangler needs to coordinate with the Event Coordinator to find people to do things like help set up, stuff event bags, place signage for the event, manage the registration desk, collect feedback forms, and handle prize distributions.  I actually had a couple of wonderful volunteers who stepped up the day of the event to handle event registrations and be my prize manager; I told them what I wanted, and they did it.

Note that you can have multiple people fulfilling one or more of these roles; you just need to have these roles fulfilled.

 

3.  Event day issues.

Here’s a list of stuff to think about:

  • Always have a health plan.  Midway through the first session, a volunteer found me and asked “do we know where the first aid kit is?”  I shifted from relief to panic in at lightning speed.  Turns out someone had a minor cut, it was really nothing, but I didn’t know where the first aid kit was.  You should also know where the local emergency rooms are, as well as the address of the facility in case you have to call 911.
  • Pack a tackle box of supplies.  You’ll need paper, tape, scissors.  You may also want to keep a printer handy in case you need to print badges on the fly.
  • Have a plan for non-registered “showups”.   See the bit about printing badges on the fly.
  • Even with a lunch fee, some people won’t show up.  I kept thinking we were gonna have 100% attendance since people ad already paid for this, but we still only pulled about 85%.  That’s kind of sad, given that we ha to turn away people from the pre-registration because of fire code.  It really meant we needed a larger facility.
  • You have to buy lunches for everyone; over-order veggie meals, and figure out something to do with the extras.  You can send them home with attendees or donate them to the local fire department.  Just have a plan, cause you WILL have leftovers (see the point above about no-shows).  Make sure that you have a list of who gets a veggie meal at registration, and stick to that list (some meat-eaters change their mind).
  • If you have to change rooms between sessions, make sure you have plenty of time to do so.  We had a large room that could be separated into 3 rooms; we had plenty of time to make the change before the lunch speaker, but I didn’t leave enough time after the lunch speaker to change configurations.  We made up the time, but something to think about in future events.
  • Don’t expect to attend more than 1 session.  I like learning, and you probably do to. However, one of the sacrifices of putting on a conference like this is that you don’t really get to attend the conference.  Spend your time networking with the speakers and sponsors who aren’t speaking.  Hang out with the attendees; just don’t plan on attending too many sessions.  DO PICK ONE, however, and go to it.  You deserve it.
  • Eat well before the conference.  You probably won’t have time to do so during the conference, unless you eat BEFORE the lunch break.  Our case, sandwiches were delivered at 11:30 for a 12:00 lunch; I should have grabbed one out of the delivery guy’s hand and eaten it then.   I tried to eat during the lunch break, but was busy resolving issues.
  • Get a room.  If you live more than 10 minutes away from the conference location, you probably ought to consider getting a hotel room nearby the night before.  Get as much sleep as you can before the conference, because you’re gonna be bone-weary the night after it’s over.  I live 30 miles away from where we had our conference, and I almost didn’t make it home without falling asleep.
  • Schedule space by the speaker, not the topic.  I tried to have smaller rooms for more advanced topics, and leave the larger rooms for beginning topics.  I had a popular speaker giving an advanced topic in a small room, and it was overflowing.  People like to hear good teachers speak on something even if the topic may be more advanced than the audience.
  • Try to fill every block of your schedule with something to do. I had a couple of gaps late in the day because I thought there would be some attrition.  I was wrong, and ended up with overloaded sessions.

 

I think that’s it for now; I’ve still got a lot left to do in the coming days, but I think this should suffice for a write-up for now.  If you’re thinking about hosting a SQLSaturday, do it.  It’s a great experience, and it’s an incredible way to connect with the database professionals in your area.  If I come up with more ideas, I’ll write an addendum to this post.

SQLSaturday #13: Today’s the day…

Don’t have time to make a long post, but it’s here…  I hardly slept at all last night; I was out WAY too late at the speaker’s dinner, and then had some things I had to finish printing out.  When I was done with that, I was so wired that I just lay there in bed.   It’ll probably hit me after the sessions begin and this monster is truly out of my hands.  I’ll try to write a post-op up later this weekend, but for now, I hope that everyone who comes gets what they need out of it.

Stu

SQLSaturday #13 – 3 days to go

Holy cow, I’ve got a lot left to do. I know this is probably boring for most of you, but this post is mainly going to be a list of unfinished business. I’ve to to make the list anyway, and I’m committed to making at least one blog post, so let me cheat it out. Anyway, here goes (in no particular order):

  1. Send out Silver and Gold level sponsor emails to all registrants.
  2. Pick up name tags & tickets from Larry (one of our volunteers).
  3. Print out missing name tags and tickets for the people who bumped up the list (when others dropped out).
  4. Count the number of prizes I have to give away, so I know how many drawings throughout the day to have. May have to wait until Friday since two of our sponsors have stuff in the mail.
  5. Go to Sam’s and renew my membership. Buy 300 cans of Coke, 300 cans of Diet Coke, and 300 bottled waters.
  6. Attend the Speaker’s dinner Friday night; don’t forget to bring the shirts!
  7. Pick up boxes for every sponsor raffle and for every class raffle.
  8. Print out registration lists for people to register; send a copy of the list to Microsoft for security purposes (&%^%$%^ that was due today!).
  9. Work on my Powerpoint presentation for “Welcome!” speech

I’m sure I’m forgetting something, but this is a start.

Testing Windows Live Writer

So WindowsUpdate prompted me that there was a few new updates available for my PC, including a selection of stuff for Windows Live.  I like this tool, but I’m going to have to put it through it’s paces to really get a feel for how well it’s gonna work.  This is just a quick post to see what’s up.

Tried uploading an image, but that didn’t work.  xml-rpc error.

Found a plug in for inserting code; let’s see if that works.

 

SELECT *
FROM sometable
WHERE column = 'column'

 

Rough day 🙂

quick post to say “sorry for not posting”

I’ve been incredibly busy the last few weeks, and unfortunately, any attempt at updating this blog had to give. With personal stuff (the Easter cantata at church and spring break for the kids), work stuff (lots of new projects), and SQLSaturday (what was I thinking when I signed up for this?) , I’ve barely had a few minutes to sit down, let alone write.

Life’s good, and I hope to post more soon. Still dropping weight slowly (sorry, no chart this time), and I’m almost in the home stretch for SQLSaturday, so perhaps my stress level will drop as well.

Stay tuned.

Call me a believer: Microsoft SSAS

This week, I’ve spent most of my days working with Microsoft’s Premier Support; they’re on site at our office, showing us the basics of SQL Server Reporting Services and SQL Server Analysis Services. I must admit that I was NOT looking forward to this week, because I felt like we were going to spend a lot of time defending design choices we had made.

I’ve been pleasantly surprised.

Our rep has been very helpful in helping us understand the power of SSAS and SSRS; I’ve always appreciated the potential of OLAP cubes, but I’ve never really worked with them. We spent most of yesterday talking about the tools, and stepping through the various concepts, but what really helped today was when we took an existing report that we currently deliver to our clients (using standard SQL queries) and developed an analog to it using SSAS and SSRS.

I think what made the difference for me was that this was MY data; I know this stuff in and out. For all of the imperfections in my design, it’s still my design, and I was able to see how the use of OLAP cubes could very effectively address some business problems we have. That’s a very effective teaching tip that I need to remember when I go to classes (and something I remember from way back in my education classes at UGA): PEOPLE UNDERSTAND CONCEPTS BEST WHEN THEY CAN GET THEIR HANDS DIRTY.

I’ve tried tutorials on SSAS before, and often found myself not quite able to grasp the concept; today, I was working to answer a common question using data I was familar with, but a totally different language. It was very enlightening, and I think it’s going to be what pushes us toward implementation. There’s still a lot of ground to cover (why is MDX so frikking complicated?), but I think I’m going to enjoy the challenge.

Brief health message

For those of you who are interested, yes, I have continued to lose weight 🙂 Not as quick as before, as illustrated by the following chart:

Over 22 days, I’m down 5.6 pounds, with an average drop of 2.82 pounds during that period. All I’ve done is three simple things:

1. Change what I eat: more veggies, more fiber, less carbs.

2. Change WHEN I eat: I eat when I’m hungry (a little snack in between regular meals), but I never eat after 7 pm.

3. Exercise AT LEAST 15 minutes a day. Mostly doing strength training (I hate aerobic exercise), but if I do strength training, I do it at a high rate of speed.

Looking forward to a loss of 20 pounds by June. Now back to your typical geek jargon 🙂