February 2008 - Posts

Notes From My Visit with the Charlotte SQL Group

I'm headed back to Orlando after a quick trip to Charlotte. Flew in yesterday and spent some time with my friend Peter Shire and team (including Brooke!) of SQLSentry talking about all manner of stuff that comes up when you get some techies in a quiet room; business, user groups, their experiences at SQLSaturday in Orlando and the possibility of one in Charlotte, PASS, etc, etc. Peter is the current President of the Charlotte SQL group and has had some good experience rebuilding interest in the group after a bit of a slide (very common thing to happen). We headed over to the event about 5 pm, got a little bit of a late start, and then I did my usual presentation on Transactional Replication. Always a fun presentation. It's perhaps not as sexy as some topics, but it's fun to open the door to a new technology by showing attendees how straight forward it is to use. Had some good questions during the event and quite a few stayed after to talk more, including some guys from Mariner (though I did miss my friend Wayne Synder!).

Peter runs a good meeting, liked the way he handled the sponsor (in particular) and the raffle, and the speaker intro. Only suggestion I made was to give everyone name tags to make it a little easier to get to know each other. He's also been aggressive about soliciting non-local speakers, something I have not done and will try to work on - it doesn't hurt to ask.

Using TripIt for Travel Plans

Not a SQL related topic today. 

I first noticed Tripit on Joels Blog and so far it solves a problem I've had from time to time; making sense out of all the various email messages I get when I book a trip. Their implementation is simple, just forward the email from the vendor (Expedia, etc) to them and they parse the message and then put it back into a standard Tripit format. For the most part it works painlessly, identifying which items go to which trip and only occasionally telling me that it didn't recognize the email format and would just add the information as unparsed text to the trip report. I still throw all those notifications into my travel folder just in case, but so far this is easy and effective. No charge so far and nothing I've seen about how they intend to monetize, will be interesting to see.

Posted by Andy Warren with no comments
Filed under: ,

Snapshots Part 1 Published on SSC

Snapshots Part 1 covers the basics of doing a snapshot regardless of what type of replication is being used. In Part 2 coming up in the next couple weeks I dig a little more into the underlying process -  not critical to know but helps dispel the black box syndrome.

Posted by Andy Warren with no comments
Filed under: ,

Perks at Work - A Good Thing?

Free oil changes, extra week of vacation when you get married, etc, etc, all things mentioned in this article someone forwarded to me. But are these good things? Don't get me wrong, free is good, but there are a few things I think about when it comes to perks:

  • Are they sustainable in lean times? What seemed like sooo much fun to give can have a huge negative impact when it's taken away. Said differently, what starts out as a perk soon becomes an entitlement, it's just human nature.
  • Are they a good retention tool? Given a choice of free oil changes or getting 6 weeks vacation, which will be more likely to help you retain people?
  • Are they a good recruiting tool? I don't under estimate the power of free based on my experience watching fellow geeks queue for free shirts and etc at conferences, but if you add up the cost of oil changes for a year, is that really a deciding factor?
  • Are they easy to administer? Will we have to hire someone just to manage perks?!

I used to work for a company that didn't have many day to day perks, but once a year they sponsored a 3 day company cruise. Employees that had been with the company were able to go at no cost, those with more than three tenure could take their spouse along at no cost. People loved to talk about the last cruise and the next cruise, and it was a powerful message to send to prospective employees - we are not a poor company, we like to have fun, there are benefits to sticking with us. Eventually it was cut when the company was acquired because 'the shareholders wouldn't understand'. I'd think shareholders understand recruiting and retention, but what can you do?

Given a choice of spending $1000 on a cruise once a year, or dribbling it out throughout the year on smaller things, I'd go for the big splash. That presumes OR though. If you can afford to do both, should you?

Posted by Andy Warren with no comments

Lessons Learned from SQLSaturday #2 - Tampa 2008

I posted earlier about the event being a great success with more than 200 attendees, in this post I want to focus on things that went not so well because we learn more from our mistakes. Please don't think Im criticizing Team Tampa - Im not - I suspect they would agree with most of the notes below.

  • The reception location didnt work out well because we didnt quite have a dedicated area and the noise level was too high (live band on Fri night). Can't emphasize enough to do a site recon at the same time/day of week to look for issues.
  • Also had some confusion about the location, but I think the notification were clear enough. Not sure how to fix other than to make sure they have a phone number to call with questions at the last minute.
  • No name tags for attendees at the reception. I struggle with putting names to faces until I know someone a bit, name tags help!
  • One really smart thing they did was find some room in the back of the venue to get all the volunteers together to stuff the event bags. I think combining work with some fun makes it easier to get a few volunteers and probably the speakers would assist if asked
  • Quality of the speaker shirts wasn't great. This is about the only tangible thing speakers get and if they won't wear it after the event it's not much value. The struggle of course is trying to manage costs. Is it better to have some shirt than no shirt? Good shirts in Orlando averaged about $15 with embroidery.
  • Think we need to automate the close to event reminders so it doesn't fall through the cracks. Probably a reminder the week of and the day before, both sent early because for many people it will be their work address
  • What to do about seating max capacity and beyond? Wes set up a wait list, but in practice you either tell them to attend or not, and hope for the best. The challenge is we probably 30% don't show and we don't have a cancellation mechanism (or know if they would use it). Shawn Weisfeld suggest calling it "standby" and I kind of like that, we can tell people to come to the event and if there is room, fine, but we can separate them from the ones that registered early (and therefore helped us convince sponsors the event was viable)
  • Hand written name badges work fine!
  • I think events benefit from a master check in list. We need to easily see how many people registered and walked in so we can confirm lunch count. Tampa tried to reverse engineer by counting raffle tickets not handed out, not as clean or as easy.
  • Using the hotel for logistics worked out reasonably well for lunch. Issue is pricing, Wes staged a coup getting lunch at $8/person!
  • Room layout wasn't great. We had three rooms on one side and three on another, with a little luck and help from the hotel they could have all been on one side. Instead we had another group (real estate) mixed in with us.
  • End of day raffles have to be small in size. Wes was burning through the list of evals giving away books, but he probably had a 100 to give. Just doesn't scale. Better to save the big prizes for day end, raffle some off at lunch (encourage people to stay on site) and at some of the sessions.
  • They opted to borrow projectors rather than rent (cost was way to high to rent), but the downside was that not all the projectors had long cables. The room I was in had the projector on a table in the aisle, I had to sit facing the screen with people on either side front & back, awkward way to present. Potentially we can work on just buying a few projectors and making this less painful.
  • Printed eval on one side, bingo card on the other - very nice consolidation!
  • Had nice ink stamps for sponsors to stamp the cards, also very nice
  • Hotel wouldnt let them put up signs directing people to the rooms.

I think most people would say that thing went well and that they had a good day. All the stuff above is for next time, try for incremental improvement.

 

Posted by Andy Warren with no comments
Filed under:

LINQ Again!

I recently attended SQLSaturday#2 in Tampa and had the brief chance to chat with David Hayden about LINQ (I suspect I am one of the passionate DBA's he mocks a little in that post!) and it really reinforced yet again for me how wide the chasm is between DBA and developer. For those who haven't ready my earlier post about Whats Wrong with Linq to SQL, I suggest starting there and then returning here.

So, here are some misc thoughts:

  • First, we have to be sure that we separate LINQ from LINQ to SQL. LINQ is a query language for objects and is long overdue, and the implementation I've seen looks good!
  • All tools have the ability to be used for good or evil, but I still argue that 90% of developers (and DBA's!) will use the default font, the default connection string, etc, etc. It's one reason we've fought so hard to make everyone use examples that don't rely on the SA account with a blank password. Most users take the defaults - as they should - as the vanilla implementation that will work for most people.
  • In truth I don't really care how developers package data access. They can use the MS library, write their own, scatter data access throughout the application, use Sonic, Hibernate, etc.
  • What I do care about is that sql statements are parameterzied (for performance and for protection against sql injection), that connection pooling happens, that minimal round trips to the server are made, and that an appropriate amount of resources are used
  • I do care about granting table level access. It is not a good idea and I only recommend it for cases where a truly dynamic search needs to be built (or ad hoc reporting, same thing) and then only when run under a read only account

As a DBA I get paid to secure the data, to safeguard it and server resources, and to make it available for use as the business needs. I think too often DBA's focus on the first three and not the last one, and that's where many of the trade offs occur (and the chasm widens). We expect both too much and too little from developers, and we have to work on fixing that.

What does concern me more is that the same gap might exist in the depths of Microsoft. If you look at SQL 2005 you can see they've added forced parameterization to fix the problem where developers don't parameterize their statements and plan guides (useful on COTS, bandaid on in house stuff) and then we see LINQ to SQL which seems to de-emphasize stored procedures as well as the work MS has done in their patterns and practices library as far as packaging data access. Is MS prepared to recommend granting read/write access to tables as a standard (aka BEST) practice? DBA's are trying to secure and safeguard and stored procedures have been recognized for more than 10 years as the best way to do that (with the exceptions for search noted above).

As a pragmatic DBA I'm more than willing to compromise at the enterprise level. Many of my clients use dynamic sql with parameters, it works fine, and no profit for them in changing things for the sake of change. As someone interested in industry trends I want to make sure that we (DBA, Developer, MS) share a common vision of best practices and when it's ok to diverge from them.

Finally, I'll just that if you've never worked as a DBA and a developer I highly recommend spending 60 days in the other persons shoes. Both jobs are challenging and absorbing, and understanding the pain of the other side can go a long way towards building a productive relationship.

 

 

Posted by Andy Warren with no comments
Filed under:

Call for Speakers for PASS Summit is Open Through March 28, 2008

The Summit is being held in Seattle, WA, Nov 18-21, 2008. Call for speakers is open through March 28. It's a great venue for SQL Server professionals and if you've been practicing at local events, maybe now is the time to try to move up to a national audience! The competition to get on the schedule is tough, but they try to bring in as many different speakers as they can. Doesn't hurt to submit a session and see what happens.

Posted by Andy Warren with no comments
Filed under: ,

New Book from Celko - Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL

I've been meaning to post this, Joe's latest book Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL is available on Amazon for about $24. Here's an excerpt of the excerpt:

"Joe Celko has looked deep into the code of novice SQL programmers and found a consistent and troubling pattern. These programmers have not changed their approach from writing code for a procedural language, like C, to a declarative language--which is what SQL is. As a result they are not fully using the power and capability inherent in SQL and that translates into writing more code than they need to write, more complex code than is needed, and ultimately lower productivity."

Haven't read it yet, just ordered my copy, but usually he has some pretty good ideas about how to solve problems. Hopefully this is more than a multi page rant!

Posted by Andy Warren with no comments
Filed under: , ,

Dry Erase Board v2

When we first set up shop for End To End Training we knew we wanted both a flip chart and a dry erase board. For the latter we did some research and many people recommended tileboard, available from the local home supply type store for about $10 for a 4'x8' sheet, a lot cheaper than the store bought ones. We put a wood frame around it (using pocket hole joinery if you're interested) and used it for 18 months. It worked reasonably well, but the dry erase part turned out to be more like almost dry erase. We had to use a sponge that was barely wet to get stuff off and we also had a couple incidents where permanent markers got used. Dry erase is supposed to be easy!

We just moved to our new office and debated just replacing the tileboard (and making it easier to replace again in the future), or trying Plan B - plexiglass. We purchased a 4'x8' sheet of 1/8" plexiglass for $100 and mounted it on top of a new $10 piece of tileboard, then secured it using screws and fender washers. Installation was a pain, lots of static electricity between the two sheets and as we drilled the mounting holes we kept getting bits of dust sticking to the inside which we then had to carefully wipe away trying not to leave fingerprints and other smudges. The plexiglass also doesn't like to quite lay flat. Close, but not perfect. A mounting issue I'm sure, but it didn't make it easy! We're testing it live this week in class and it erases easily with a soft cloth. Some colors work better than others, we've had to set aside the brown markers for now (maybe because they are the low odor ones), and it's just a little shinier than we'd like, maybe should have just painted behind it rather than use the tileboard. We'll see if it works out to be worth the extra money/effort, or if we need Plan C.

If you've found this mildly interesting you might also want to read an article I posted years ago, White Board, Flip Chart, or Notepad?

Posted by Andy Warren with no comments
Filed under:

SQLSaturday #3 - Jacksonville 2008 - Registration and Call for Speakers is Open

My business partner Brian Knight just finalized the venue for the next SQLSaturday. Number three will be held at the University of North Florida in Jacksonville on May 3rd. If you want to attend, speak, or just see what's up, head to SQLSaturday.com. We're setting a goal of about 200 attendees, similar to what we've been able to achieve so far at the Orlando and Tampa events. With experience and better marketing I suspect that number may reach closer to 300, but we'll see!

 

Posted by Andy Warren with no comments
Filed under:

Ideas for Managing Cables

I had to run all the cables for all the machines in our classroom recently and you know how messy it is with all the various cables needed to make a PC run. Last time we used zip ties, this time we tried a product called Cable Zipper that I've been really happy with. The link is to Amazon, but we bought ours at the local OfficeMax, $14 for 8 feet of it, but it goes a long way, and it's reusable.

I've haven't tried this decluttering solution yet - it's on the agenda to try it at home along with my favorite peg board hooks.

 

Posted by Andy Warren with no comments

SQLSaturday #2 (Tampa 2008) Notes

Congratulations to Wes Dumey, Pam Shaw, and the rest of the Tampa volunteers for building a very nice event. Very little went wrong that I could see and everyone was having a great time. I did my usual presentation on Beginning Transactional Replication and I think it removed the fear for more than few of the 30 or so that attended the session. I'll post some more detail notes about the operational side of the event in a few days, but for now we'll let the Tampa crew relax and enjoy the victory!

Posted by Andy Warren with no comments
Filed under: ,

Management Article Posted on SSC

I wrote Management because we typically get it so wrong in our line of work. Nothing better than working for a great manager except working for one that is also a great leader, and perhaps nothing worse than working for a terrible manager. The tragedy of our profession is that too often we take the superstars from the ranks and move them into roles they are not prepared for and perhaps not even suited for, and then do little to nothing to help them succeed.

I have zero disdain for the craft of managing, I think it's a critical component of the business. It's easy to make fun of management, to call it politics, etc, and most of that is well earned humor. But it doesn't have to just be about that. It can also be about building an environment where the alpha geeks can use their skills most effectively, one where you can mentor the junior people into senior people, and where winning is a by product of that environment.

Getting Geeks (IT Pro's) To Talk at User Group Meetings

User groups have to be about more than technical content if you want to sustain them over the long term, and the best way to create that 'more' is to work on getting attendees to talk to each other. Here in Orlando we experiment with different ways of doing this and at our last meeting what we tried was breaking up into teams of two and three to see who could solve the most logic problems within about 15 minutes. It worked pretty well, fun to watch to see the various strategies; working together to solve one problem at a time, splitting up the problems across team members, and trying to identity the easy problems. Our winning team actually solved eight using the divide and conquer plus find the easiest problem method.

We'll probably try it again sometime in the future but it's probably not something we want to do at every meeting just to keep things interesting, but this was fun!

Posted by Andy Warren with no comments
Filed under: ,

Should Code Camp/SQLSaturday Be Free?

Recently I posted about making sponsorship work to lay out some ideas for events that are seeking sponsors. My friend Shawn Weisfeld manages the Orlando .Net group and he posted his thoughts on sponsorship yesterday. The Code Camp Manifesto is where it all started and it definitely focuses not just on free, but no cash outlay. I think that's realistic if you have 5-20 people meeting, but after that I'm not sure it's practical. Orlando Code Camp has more than 400 attendees, the South Florida Code Camp more than 600. The problem isn't that those two events have strayed from the manifesto but rather than are a different animal - call it a mini conference.

On a good year perhaps 2000 people attend the PASS Summit, and maybe 11k attend Teched. I've attended at least one national conference each year since 1999, it's easy to lose sight of the fact that many people never get to go to a conference. Conferences are different from classroom training, they exist to help you explore new ideas quickly, to let you network with peers (especially valuable for us DBA's who often have no peers at work), and to just recharge. We need more of these conferences at lower prices!

I think calling it a Code Camp just lets users know that it's less formal, less likely to be perfect. Our own SQLSaturday was an attempt to be just a little more formal, to come as close to being a real conference as we could on a limited budget (about $4000) and I think we did pretty well. It's definitely important to set expectations, nothing can sour a day faster than to expect one thing and get another.

Which brings us finally to the should it be free portion of this post. I like free. It let's people come that just couldn't afford to any other way and I think they have more of a grass roots feel to them. But take SQLSaturday for example. If we had charged $20/person would they have been less happy with the event? They received coffee & doughnuts for breakfast - call that a $1.50 in value, and a nice boxed lunch from Jason's Deli - $7 value, and as much soda/water as they could drink - variable, but let's round to $1.50 to make their real received value $10. The other $10 would have paid for speaker shirts, signs, trash bags,and all the other little things needed to make things run. Would charging $20 raise expectations too high? Would it shrink attendance because many people don't want to pay anything out of their pocket?

Let's look at the choices:

  • 100% free, no sponsors. Probably best for small groups but good for you if you can make it work!
  • 100% free, sponsors. Good for larger groups assuming you can get businesses to give you money (see my earlier post above as well) - it's a trust issue, do they find you credible? Track record helps.
  • $20, no sponsors. Good for any size event, no selling to sponsors, one less customer type to please. Arguably attendees will miss out by not meeting sponsors (remember few of them go to the big events).
  • $20, sponsors. Good for any size event, assumes you see values in having sponsors on site (could invite them for free even!)

I think all of those are valid choices and people looking at one of these events should really consider which model fits them and their community best.

The final point worth discussing; what happens to money left over? I think the best use is to leave it in the hands of the local user group to help subsidize bringing speakers in, but a pleasant alternative would be to donate any 'profit' to a local charity.

Posted by Andy Warren with no comments
Filed under: ,
More Posts Next page »