THE SQL Server Blog Spot on the Web

Welcome to SQLblog.com - The SQL Server blog spot on the web Sign in | |
in Search

Louis Davidson

  • Relational Database Design Pre-Con at PASS

    Well, here we go again.  I am making my final preparations again for my "How to Design a Relational Database" pre-conference seminar coming up at PASS. If you want to know what the "official" abstract is, you can find it here and if you are already convinced and have credit card in hand, click here and register before the price goes up more. If you have already registered but not for my (or any other) pre-con, you can always add on the precon!

     

    So you can read the abstract, but what to expect? First off, expect to not sit in one spot while I drone on and on for 7 hours of lecture or code samples (not that I couldn't go 7 hours straight just lecturing, and it would be a little bit easier to plan, I assure you). I plan to limit lecture to 3 hours in four sections:

     

    Section 1: Introduction with a bit of history

     

    We start with just enough introduction to the materials, the stuff you need to do *before* you design, and introduction to the history of the craft to make sure we are all on the same page.

     

    Section 2: Modeling and structures

     

    Next I will cover the fundamental building blocks of relational databases, like tables, columns, keys, etc; and how to create a data model of the constructs.  This is by far the largest part of the lecture, and by the end we should all be on the same page as to what goes into the database, if not exactly "how" the final product should look.

     

    We will stop at this point, and I will  get out my modeling camera (that sounded a LOT more glamorous than it will turn out to be) and we will do some modeling on paper, eliciting you (assuming you have gotten out someone's checkbook and paid the entrance fee AND actually shown up :) to provide the parts of the database, and we will all decide what should go into the model.

     

    This initial model will be VERY simple, but it will help me to decide how to proceed with the rest of the day's exercises (based on the class size, acoustics, etc.) Every exercise can be done in teams or as a class…

     

    Section 3: Model Standardization (Normalization)

     

    Next up, we will talk about the kinds of things you need to do to the model to prepare the model to be implementable by truly analyzing the structures to see if they make "sense" within the confines of the relational model. It is always interesting to me that most models are somewhat normalized, but people think that normalizing makes things slower. And the misconceptions about the higher normal forms make even less sense…

     

    Once we are done, we will start the exercises. The first exercise is planned as a full class exercise, where I will man the data model (first on paper, then in a modeling tool), and elicit input from the class, in a manner that make sure everyone gets a say.

     

    Then we will certainly break up into small teams and build a final model on paper, which I will bring up to the projector and we will discuss the different solutions.

     

    Section 4: Physical Modeling Overview

     

    Assuming we still have time, we will take the last 40 minute and cover turning the model into a "real" database. Data types, domain implementations, constraints, testing, etc will be covered.

     

    Due to the limitations of the 7 hour format, and a *strong* preference of previous classes towards actually doing some design, there are topics we won't cover. But honestly, if you can get the basic design correct and make the model
    look like what the final model needs to, the rest is kind of gravy.

     

    What I really love about doing all of the designs is that we really get the flavor of a real design meeting. A few differing opinions, a few ideas I hadn't planned for, and a few argumentative types who really want their own way. But none of the arguments so far have gotten out of hand, and they have all been very much like the typical data modeling meeting.

     

     

    So after reading this, if you are still confused if you are in the target demographic for my pre-con, I will present on my twitter feed with a hashtag of #drsql_precon_demo what I feel to be the target audience. Some of them will be silly, and some will be serious, but if you all show up we are going to have ourselves one heck of a good time.

     

  • PASS/SQL In The City Are Coming Up Very Soon...

    Every September for the past 12 years, not only does summer slowly come to an end, but it is the time that final preparations for the SQLPASS Summit are being made by just a ton of people. I have always focused on speaker preparations myself for the most part, but there are hundreds of other folks furiously prepping to make the trip up to Seattle.. er.. I mean, Charlotte, NC (still seems weird after the long run in Seattle!) If you have never been to the Summit, I would highly recommend it. You will almost certainly end up with enough knowledge to make it worth your time and entrance fee. And even if you didn’t learn a single solitary thing, you will probably end up with more technical contacts than you can shake a stick at, (and probably more than a few new friends). I have made a lot of lasting relationships during my years of going to the PASS Summit, even before the days where social medial came into being; making the SQL community a year-round entity.

    Concerning the venue, it is pretty cool that we are moving to a different area this year. It has been a while since we last went to a different city than Seattle, and I am both excited and frightened. Seattle has become quite comfortable, as I have been to the convention center at least 15 times for conferences, I know my way around, I always stay at the Homewood Suites up the hill, and like I blogged last year, it even has smells that remind me that I am at the Washington State Convention Center (I will actually miss stopping at the burrito place this year!)  If we are lucky, this year we will make new memories of locations, and hopefully end up pining to go back to Charlotte for another conference some day. I know that I feel that way about Denver, despite the lack of oxygen my lungs so desire. I particularly enjoyed the year where it snowed there during the Summit! Of course, it will also make it that much nicer next year to go back to Seattle.

    For my sessions, preparations are coming along nicely. I have turned in my Hierarchy presentation, and have already done the presentation at DevLink where it was reviewed decently, with some information that I think will really help to smooth out the demos, and to present the pros and cons of the implementation methods. I have been doing some fairly large hierarchy testing to show the benefits of the different implementation methods that are pretty interesting (at least to me). It is interesting to see how the five different hierarchy implementation patterns we will review work, particularly with very large sets of data.

    But before that session, I have two others on my favorite subject, that being database design. First on October 14th, for SQL In The City, I will be doing a compact version of my Fundamentals of Database Design, which is an hour long version of a database design lecture that could easily take 3.5 hours, followed by another 3.5 hours of classwork trying out database design.

    Note: SQL PASS has precon sessions going on on Monday that are filled with fantastic content from heavy hitters like Itzik Ben-Gan, Paul White, Stacia Misner, Brian Knight, Devin Knight, Curt Matthews, Shon Hauck, Paul Randal, and Glenn Berry. If you can swing one of them, I would. If you are there on Monday and cannot swing the additional fees or wanted one of the Tuesday sessions (that are not loaded with slouches either, I look forward to seeing you at SQL in The City.

    On Tuesday, October 15, I will be teaching my How to Design a Relational Database precon session, in which I expand the material to cover design logic and theory in a good bit more detail, but then we as a class will work together to actually do some designs. Once or twice as a class unit, and then we will break up into teams and the class will work as teams to produce a design that we will come back together and discuss. No design will end up perfect with only an hour to build it, but few if any designs end up perfect with weeks to do the design either.

    Once the precon has ended, Tim Ford and I will be once again reprising the Quiz Bowl, and this year we will be looking for talent amongst our (my and SQLPASS') twitter followers. Stay tuned if you feel like you might be the kind of nut person we are looking for. Moments after that I will sink into my bed and sleep as long as I possibly can before the hierarchy session.

    Over the next few weeks I will blog an introduction to each session with a few tastes of what to expect. For now, I am going to continue to try to optimize my hierarchy code to see if I can improve load times… optimizing code is fun!

  • Why We Write #8 - An Interview With Stacia Misner

    Today's interviewee is someone who is quite a prolific writer, with her most recent book being Microsoft SQL Server 2012 Reporting Services, having been released in May of 2013; and if you check out her Linkedin page (http://www.linkedin.com/in/staciamisner), you will find 12 other books she has either authored or co-authored. And that is just the start…
     
    Stacia has a blog at 
    http://blog.datainspirations.com and it is amazing that it has any entries at all considering how busy she is speaking and teaching (her events page on her website doesn’t even mention PASS yet) I met Stacia when I was looking for an MDX and SQL Server Reporting tools training, and while BI tools aren't exactly something I practice, I learned a very large amount from her classes, as did my coworkers.
     
    I have asked Stacia to take a few minutes (or, as I learned when I answered the questions myself, perhaps a few hours) to answer a few questions about why she writes. I am a bit concerned that she is going to be my first interviewee that pushes the limits of career writer, but I will publish it in any case...
     
    1. We all have influencers that have advanced our careers as writers. It may be a teacher who told you that you had great potential, or possibly another writer who impressed you that you wanted to be like? Or perhaps on the other end of the spectrum it was a teacher who told you that you were too stupid to write well enough to spell your own name, much less have people one day impressed with your writing? Who were your influences that stand out as essential parts of your journey to the level of writer you have become?  

     

    I don't remember the details anymore, but I have a vague memory of participating in a writing contest when I was in the 3rd or 4th grade. So I definitely had teachers that encouraged me. I didn't win the contest, but I did get an honorable mention and the award was no doubt a book. I was surrounded by books when I was young, having parents who were prolific readers. My punishment when I misbehaved was to go outside and play. Otherwise, I was quite happy to sit inside and read all the time. Not only did I read fiction, but also the encyclopedia and even the dictionary. I think reading a wide variety of books is essential to developing the ability to write. Later in life, I discovered my mother was secretly working on The Great American Novel. In many ways, I have followed in her footsteps in my career as a woman in technology, and have outpaced her in the publishing field, although my genre is technical books. I only know that she was (is?) working on a piece of fiction, which is not something I feel I have enough creativity to do. Nonetheless, I have always been keenly aware of my mother's writing skills and have sought to measure up. I don't think she knows how much she influenced me in that regard. I was never told what career to pursue, just to pursue it well. 


    2. As the years pass, how has your writing changed?  Do you feel like it is becoming a more natural process? Or perhaps you get more critical of your own writing to the point that it takes you longer?

     

    Having worked with a number of copyeditors over the years, I see a difference in the amount of work they do (or don't do) to clean up my writing. I have this insane goal to submit the perfect manuscript, but then deadlines kick in and I reluctantly submit my work. Consequently, I can see that I am definitely more critical and it does take longer to write than I would like. I'm not sure if that's a good thing or a bad thing! 


    3. From what I know about you, you are quite busy teaching, speaking, actually creating software, as well as writing. Do you find yourself favoring any of these tasks over another? 

     

    Correction - I do not create software unless you know something about me that I don't! I do stay quite busy. I like all aspects of what I do, and especially the ability to switch gears. That said, when I'm teaching, I really love teaching. When I'm speaking, I really love speaking. When I'm writing, on the other hand, I really hate writing and wonder why I set myself up for this again! But then I look at the finished work and I hear from readers who appreciate what I've created, and then it makes it all worthwhile. It pushes me to learn more and think about how to communicate complex ideas, which in turn helps me in the classroom and at speaking events. 


    4. Assume a time machine has been created, and you are scheduled to speak to a group of potential writers, in which you and I are in attendance. Without concern for the temporal physics that might cause the universe to implode making the answer moot, what would you tell "past us", and do you think that your advice would change where you and I are in our careers now? (like would you tell yourself to get excited for the day you will be sitting here for a rather long period of time answering interview questions and not getting paid for it, instead of feeling the warm sun on your forehead?)

     

    Ok, that question just made my head implode thinking about what to say, especially because I know the outcome for the present "me" and there's not much I would change. In retrospect, I think I would say don't worry so much about how cleverly someone else writes. You have your own voice and perspective to bring to the writing that readers appreciate. Therefore, my advice is not one that would be career-changing, but one that would hopefully inspire a bit more confidence. 


    5. Finally, now the big question I am trying to get answered. As my earlier questions have made clear (plus I am guessing you have some non-work things going on too!) there are no doubt tremendous pulls on your time. Why do you do write? 

     

    Because I'm crazy and I can't sleep anyway! Besides that, I find it really helps me dig more deeply into the technology in which I specialize. I can work with a product for years, and still discover nuances about it that no else has mentioned. When I approach the learning by writing, I find I can articulate my own questions better and then go on a quest for the answers. As an example, my editor let me go much deeper with my last Reporting Services book. It's a giant book, and yet you should see the notes for things I wish I had added. It could potentially be twice its current size. I wanted to create something that went beyond the traditional Step by Step series I had done before in order to help people of all skill levels, including myself. 


    Bonus. Are there any projects you want to mention that you have coming up that you want to specifically mention?

     

    You can expect more book projects, one just spinning up and another still in the percolation mode. The main focus of the remainder of my year will be producing several new courses for Pluralsight. Meanwhile, conference season is not far away. I'll be speaking at IT/DevConnections in Las Vegas in early October, at the PASS Summit in Charlotte in mid-October, and at SQL Server Days in Belgium in November. Of course, there are several SQLSaturday events that I am eyeing, so you never know where else I might show up this year! It's always an adventure!

    --------------------------

    Thank you Stacia for taking the time to answer my “little” interview questions. I love hearing from my fellow technical writer types to find out about their process, history, etc. I must admit that by far, my favorite answer is the one she gives there she gives is here:

    “…when I'm teaching, I really love teaching. When I'm speaking, I really love speaking. When I'm writing, on the other hand, I really hate writing and wonder why I set myself up for this again!”

    I feel the same way too, but kind of inverse. When I writing, I am happy, and I find that teaching, speaking, and writing are all very much writing tasks. I spend scores more hours preparing presentations than doing them. That part is fun, going over and over it, finding mistakes, flow problems etc.

    But I have never felt comfortable in front of people, so I get nervous and don’t really start feeling good about things until about halfway through.

    I do sometimes wonder why I start writing when I could make a lot more money doing other sorts of side work, or to be honest, the same amount of money watching reruns of “What’s Happening?”

    Admittedly, her answer to the “Why” question does mirror mine very much: “Because I'm crazy and I can't sleep anyway!” Well put.

  • Why We Write #7 - An Interview with Allan Hirt

    For today's entry (and after a brief side trip through my own experiences), I move just slightly out of the SQL realm to a Microsoft Clustering MVP. Ok, in reality he is very much a SQL Server expert/guru (having taught for the SQL Server 2008 Microsoft Certified Masters courses), and has been for many years. He just spends more of his (at least public) time working on failover clustering than he does in the more general type of DBA/TSQL/Business Intelligence role tasks that most of the people I have interviewed so far have been involved with.

    I have known Allan for quite some time now, and while we may not share a ton professionally in common (other than a love for SQL Server), I talk to him often about one of my favorite hobbies, going broke at Disney Theme Parks. His twitter handle is @SQLHA, and his website/company website is http://www.sqlha.com/.

    Allan is a prolific writer, having written several books for Apress, including Pro SQL Server 2008 Failover Clustering and Pro SQL Server 2005 High Availability, and most recently a very soon to be out, self published book called Mission Critical SQL Server. His blog has a very steady stream of on average 4 or 5 entries a month that are very interesting and useful to read.  Today, I ask Allan to answer my questions about why he writes to continue my quest to find out why other people are writing.

    ------------------------------------ 

    1.  There was a point in time when you didn't have a blog, didn't tweet, and had no public presence whatsoever. And then, one day, you made the decision to put yourself out there. What prompted you to get started writing, and what was the first public work you produced?

    I can’t ever remember not writing or doing something like drawing (little known fact: I designed the CD covers for all three of the CDs I’ve released to date). I’m inherently a creative type and very verbose. I’ve never loved writing fictional things, though, so I won’t be the next Clive Cussler or even Mark Russinovich. I’ve always liked more factual-based writing.

    Speaking to the public presence thing, it’s always been part of who I am. I think I had one going back to when I was a kid. Even prior to starting to play bass in third grade with performing publicly and getting attention that way (I was already playing with high school kids I think less than a year after starting to play), I participated in services at our synagogue doing one thing or another (leading part of the service, reading Torah/Haftorah, whatever). In fact, during high school, when the rabbi went away sometimes either myself or another friend of mine would lead the Friday night or Saturday service from time to time. So “being out there” and doing public speaking/appearances has always been a part of my oeuvre. I can remember one time where it was myself, my Mom, and a handful of other people in the synagogue. They were setting stuff up or cleaning something up. I went up to the bimah and started hamming it up over the microphone. I couldn’t have been more than 5, if not younger. Funny how we remember things like that even later in life.

    I can also remember in high school when our jazz band made the finals for the Berklee Jazz Festival in Boston, we played the Berklee Performance Center. It wasn’t until years later when I went back and saw a concert there that I realized how big that place is. I would say my experiences with music and in synagogue have certainly benefitted me later in life.

    What was the first public writing I’ve done? That’s a tough one. It depends what you define as public work, because it would probably go back to elementary school. I was underclass editor for the high school yearbook as a sophomore, and editor-in-chief as both a junior and senior. I was the co-editor of our bus’ compendium for USY on Wheels (USY is a youth group). I have a very long history of doing things that paved the way to where I am today. I don’t think anything I’m doing today would be a complete surprise to those who knew me back then.

    The writing I had the most fun with was in the 90s when I used to do a bit of music journalism. I got to interview some of my favorite artists, including members of Styx, Genesis, Geddy Lee of Rush, and Howard Jones. That really paid poorly (if it was paid), but it was a blast. A running theme you’ll notice in this entire interview is I’ve had a pretty good life to date and lots of luck.

    Funny aside – even in elementary school I would be up at all hours of the night working on projects such as reports only to have to be up and out by 7AM or so. Not much has changed today.

    With regards to blogging and tweeting, it’s a matter of making sure you are putting yourself out there. I was very late to the club on both of these social media aspects. As an independent consultant and business owner, it’d be just stupid not to have some sort of presence. I won’t lie. But I tend to go into these things more reluctantly than people think since I’m inherently a private person. I’m a risk taker, but other things I’m more conservative about. I’m not about tweeting my life story, and I only blog when I’m inspired – quality over quantity. I don’t schedule tweets or blogs. No slam on those who do, by the way. It’s a perfectly valid way of doing things, it’s just not mine.

    2. We all have influencers that affect our trajectory as a writer. It may be a teacher who told you that you had great potential, or another writer who impressed you that you wanted to be like? Or perhaps on the other end of the spectrum it was a teacher who told you that you were too stupid to write well enough to spell your own name, much less have people one day impressed with your writing? Who were your influences that stand out as essential parts of your journey to the level of writer you have become?  

    I’ve been tremendously lucky my entire life. Many people have championed me and pushed my potential along the way, and I’m indebted to all of them. Those who have championed me have seen something in me going back to being a wee tot that they wanted to help foster. I have no idea what it is. If I did, I’d sell it and retire.

    I can remember being my usual precocious, outspoken self even in kindergarten. Here in the US, there’s not too much deep learning going on in kindergarten – at least that’s what I remember. I think one day I raised my hand and said I was bored. The exact circumstances of what happened next are a bit fuzzy since we’re probably talking about 1976 or 77, but they put me in an advanced reading class by myself a few hours a week. I remember they had to throw my US History II midterm out of the grading curve since it covered more than we learned but I knew the answers anyway because I was a history buff. I’ve been lucky like that my entire life; education was a positive, not a negative. This isn’t meant to boast or sound cocky at all. Plenty of people know more than me.

    It was unprecedented to be a junior and the editor-in-chief of the high school yearbook; I was the underclass editor the year before including doing all of the layout work. That particular English teacher who headed the yearbook, Mr. Schroyer who unfortunately passed away, was a great guy. All of my music teachers (Mr. Forte, Mr. Cohen, Mr. Schlenker, Mr. Peraino, Mr. Lesser, and a few others) in school really helped me out, too. I never took a formal paid lesson; I had whatever I got in band or the brief lessons in school itself. I never really practiced. When Mr. Cohen came into our third grade class to try to talk band up, I told him I wanted to play guitar. I was insistent. He took me in the hall and told me there was bass guitar, and the rest is history. I’m not always good at being subtle or taking no for an answer. I was first chair trombone in high school my senior year, yet I only really played the thing in band class and only took it up in fifth grade because a) I couldn’t be in band and play bass since marching band was a requirement b) I didn’t want to learn a new clef. Mr. Lesser drove me to audition for being in the state high school jazz band. That was over and above. I can remember making the all South Jersey jazz band five years in a row (grades 8 – 12). Mr. Lesser always helped me prepare. One year I beat someone more senior than me (I think I was in 9th grade at the time); the guy was pissed off and looked like he thought he deserved it because he was older. I never made state; whoever else auditioned was better than me. That’s the way it works. I took it all In stride, but he never stopped believing in me or my talent. I remember those years very fondly.

    It’s one reason I take mentoring seriously; the right person/people can really set you down the right path. A good mentor knows what buttons to push, and when to leave you alone … and possibly even let you fail. But they know you’ll learn from the failure and be better for it. I think anyone who has had any kind of success also knows failure which makes you appreciate the success that much more.

    Another influence on me was my manager at a company called PC Docs (later bought by Hummingbird), Bob Toth. I was the database and OS jack of all trades since our product needed to support Oracle, SQL Server, Sybase, and for a time, Informix, on a variety of platforms including Windows NT, Solaris, HP-UX, and Netware. It was my job to be the first person to run our product on these platforms even before anyone else touched it. That meant I was figuring out how to get this stuff installed and working on the backend all the time. Sound familiar? When the NLM version of Oracle is your favorite of the Oracle flavors, you know you’ve touched too much stuff. As part of this process, I realized there was no roadmap; I needed to figure things out and make it simple as well as repeatable. So it was at PC Docs I started doing full instruction guides for internal use for getting the platforms up, but at some point some of our public guides were not up to snuff. I remember contributing some of that content to them. From a database perspective, that was my first formal public appearance with writing. I also remember speaking with Bob at Docsummit in Florida (Orlando?) around 1997 or 1998, which I guess kicked off that aspect of my public speaking. Docs is also where I first saw Wolfpack, which later became the clustering we all know and love in Windows – failover clustering. Docs was my second job out of college and lasted for about 3 years, but it was arguably three of the most influential of my formative years in the working world. It set me up well for working at Microsoft, and as they say, the rest is history.

    3.  What would you say has been your greatest success story as a writer, even if it was not a commercial success? And conversely, have there been any projects that were just complete disasters that you probably could have looked back and realized that before you got started?

    I think my biggest success is reflected when people e-mail me, come up to me at a conference or talk, etc. who tell me that something I’ve done has helped them or they like it. It’s still odd to get comments on my 2008 book 4 years later! It shows all those hours put in were worth it even if others didn’t agree with the vision. It’s very humbling. Writing really isn’t a vanity project for people just to recognize me since inherently I’m a private guy who happens to wear things that are sometimes eye catching. (Wendy Pastrick likes to remind me of the purple cords I wore at one Chicago SQL Saturday; I still have and wear them.)  I mean, have you seen my mug? Modeling agencies won’t be contacting me any time soon!

    As far as writing disasters go, I can think of one nightmare whitepaper which has since been published (won’t say which one it is) that was pure hell. The content owner had no clue what they wanted, but they did know it wasn’t what I wrote. By the third complete rewrite (and we’re talking a whitepaper of 50+ pages – not an insignificant amount of work!), I basically drew the line in the sand and said take it or leave it. Why hire a SME who knows the space if you don’t either trust them or know what you want? That paper nearly ruined a vacation, too. My travel companion was not happy with me. In retrospect, I should have walked away. The situation got a bit ugly behind the scenes and its side effects lingered for quite some time.

    4. As I mentioned in the intro, you are a Disney fan. Does this or any pop culture affect your writing? I know I frequently want to infuse Monty Pythone-sque tidbits into my writing (even if the occasional editor strips it out as non-essential,) and my latest trend is to name my presentations like a Goofy cartoon, starting off all names with "How To".

    Ironically enough, I really don’t use Disney in my examples. It’s a bit too obvious.

    I have a whole blog post (http://www.sqlha.com/2011/10/19/fun-with-naming-conventions/) which talks about how I use bands and musicians for things like server and instance names. It’s in all of my books. Some people get it, others don’t. After years of doing it, people have caught on. I like seeing the reaction of people when I’m talking and say things like, “So when you join Dennis and Tommy to the Styx cluster …”.

    Speaking to your Goofy “How To” point, if people haven’t seen the Goofy short made a few years back entitled “How to Hook Up Your Home Theater” (http://video.disney.com/watch/how-to-hook-up-your-home-theater-4be387e52d43da0e1266b068), go watch it. It’s fun stuff and was great to see them take the classic Goofy themes and update them for modern times. I also like the just released Mickey Mouse short “Tokyo Go” (http://video.disney.com/watch/disneychannel-tokyo-go-4e09ee61b04d034bc7bcceeb). Since I love visiting Tokyo as well as like trains, that plus Mickey = winner. Nice nod to Walt at the end. I’m glad they’re reintroducing Mickey to a modern audience in a way that’s not just for kids (i.e. Clubhouse) but in some ways, a bit more true to his early essence. “Runaway Brain” from 1995 was good, but nearly 20 years ago now! Nice seeing Mickey be more than just a character in a theme park since that’s the way it used to be.

    5. And now for the silly question…Assume a time machine has been created, and you are allowed to go back in time to speak to a group of potential writers, in which you and I are in attendance. What would be the most important point you want to make sure that we hear and follow up on? Do you think your advice would have help current you to do a better job? Or perhaps to do something els?

    Write because you are passionate, not for the payday. Some things may be more lucrative than others, but if you factor in the time spent into writing something, you really don’t make a lot when all is said and done. I love doing it, otherwise I wouldn’t bother.

    Worry about quality and staying true to yourself, even if it means walking away. Look at what I’m doing with Mission Critical SQL Server. This isn’t some drama filled split with Apress; we just disagreed on what the book should look like so I’m doing it the way I believe it needs to be done. Am I nuts for doing it? Ask me in a few months. It’s certainly a lot of work and it’s stressful, but also very exciting.

    Ensure your personality shines through in your writing. For better or worse, people who know me say they can hear my “voice” when they read what I write. In other words, I’m no different no matter what I do. That has led to some problems along the way, since I write in a way people can read and try not to create a dry, boring document. Some have a vision that a whitepaper or book can’t have any personality or must  be formal 100% of the time; I disagree. Sometimes it’s true, but most of the time there’s some latitude.

    IP ownership is a huge topic that every writer today needs to think about and deal with. Data is a company’s IP, and what I generate in terms of writing is mine. I do scrutinize the IP clauses of any contracts we sign. A big part of what I do (and why I’m an MVP) is about giving back; what I give freely I do so with no remorse. However, that doesn’t mean I think everything I do should be free. This is the art vs. commerce argument. Since I’m a musician, this topic of free vs. paid also hits home. How many people pay for music today? A topic for a different time,  but relevant here.

    My last book I know is up on torrent sites; I wish I could say it wasn’t and people respected me not to do it. I really don’t have that much spare time to write something as large as a book only for grins and yucks. I know some consultants who won’t speak at a conference unless they are getting paid, let alone write a book! Despite what people may think, there’s nothing wrong with that. Writing a book is a long, tedious, painful yet rewarding process those of us who write say we’ll never do again, but we do it over and over. We must be masochists at heart. DRM isn’t the answer to fight piracy – I wish it was; it’s a gnat in the big picture. In theory DRM is good, but the practice causes other problems. I think I dealt with it in a decent way with Mission Critical SQL Server. Time will tell.

    I don’t think I would have done a better job since my experiences formed who I am today, but things like IP ownership are things I never thought about until later in life, whether you are monetizing your writing or not. Plagiarism where people steal whole blog posts and repost as their own is common; plenty of people have talked about their experiences. I wish someone had sat me down when I was younger about the business side of things. Writing is easy. Business, legal, and doing the right thing is apparently harder,

    6. Finally, beyond the "how" questions, now the big one that defines the interview series. Why do you do write?

    I think I have a somewhat insatiable quest for knowledge and I like to share that if I can in some way. Paraphrasing someone I used to work with years ago when I worked at Microsoft: “I came to Microsoft thinking I’d find all the answers. Instead, I had to create them.” I’ve always been inquisitive. Most of what I do stems from wanting to truly understand what goes on as well as a frustration with most documentation and how poorly it is done. Given what people have said about my books, I seem to have a knack of taking concepts that are sometimes difficult and explaining them in a way that they understand them. Some say it’s a gift. I don’t know what “it” is, but I’m glad I have whatever “it” is.

    Earlier, I said I don’t write fiction, but I do tell stories. That’s the one things that frustrates me with most technical writing – people don’t have a story they are trying to tell. There’s no flow, no purpose, no beginning, middle, and end. The writer meanders with no thought, leaving you more confused than if you never read whatever it is you just digested.

    I also hate really dry reading. Something you read may be factually correct, but it’s impossible to get through because the author is a poor writer. I never want someone to label me in that way. I’m continually trying to improve. I’m never satisfied with ‘good enough’ if I can help it. And people wonder why I sleep very little …

    I think the bad writing out there fuels me a bit, too, truth be told. And for heaven’s sake, the people who do text speak in writing drives me crazy. (“Where r u going 2?”) I’d like to think I’m keeping real words alive somehow ha ha

    Bonus Question: Are there any projects coming up that you would like to tell people about? <feel free to tell us about, or advertise anything, work, fun, speaking, writing, etc.>

    The pre-release content for the first edition of Mission Critical SQL Server be starting to roll out soon (see the intro for link), and I hope to have it competed (fingers crossed) before the end of calendar year 2013. I like the subscription model I’ve come up with for providing updated content, and I hope others do as well. Nothing ventured, nothing gained.

    I’m starting to schedule a bunch of my 4-day mission critical class which has labs. I do it a lot privately, but I’m getting more requests to do it publicly so I’m dipping my toes in the water. I’m going back down to Australia for two weeks to teach it at the end of October/early November in Melbourne and Sydney, and have a Chicago class in December. Yes, Chicago in December. Buy a coat and show up! See http://www.sqlha.com for more details on all of these and any other dates which may crop up.

    I’ve got two upcoming online webinars with Penton – the yearly SQL Server foundations one with Ben DeBow (my business partner in SQLHA) which is six sessions over two days (August 27 and 29; http://sqlmag.com/sql-server-foundations) as well a one day, three session one on SQL Server high availability coming up on September 10 (details coming soon).

    Not surprisingly I’ll also be at PASS Summit again. I’ve got both a pre-con (sign up!) on clustering and a spotlight session. SQLHA along with a couple of other consultants  will have a booth at Summit, so stop by. We may even wind up giving stuff out – you never know! It’s going to be a really busy fall.

    In the non-work world, I’ve been working on my big band project since 2009 or slightly before. It’s on hold at the moment largely due to time issues since I’m busy as well as travel quite a bit. Most of it is recorded, and there’s been a bit of pre-mix work. I still need to do a bit more writing and arranging. All of the arrangements except one are mine. The album will be a mixture of originals and my interpretation of some of my favorite tunes from artists like Styx (a medley I’m going to arrange), King Crimson (“Red”), Rush (“Cygnus X-1”), and Genesis (“Behind The Lines/Duke’s End”) but with a jazz slant. Some of the arrangements are more literal, others are not. I’m hoping that after this fall’s craziness and the completion of Mission Critical SQL Server, I will get back to it.

    I also have an upcoming gig with the big band I play with when I’m home on September 1st down in Norwood, MA. Unfortunately, a sub will be filling in for me at rehearsals for much of the fall due to my schedule.

    ------------------------------------ 

    Big thanks to Allan for all of his great replies. It has been a few days laying in my email box, but Allan was *the* fastest in returning the questions, passing right by two other people who I am currently waiting on. Not that I mind people being slow, I know that it takes me longer to edit the questions for another person than Allan took to reply, and it took me nearly a week to finish my answers to questions I wrote!  I sometimes wish I was a lot faster of a writer, but I spend a lot of time editing myself over and over to make sure I get it just right (or as right as I can be without going crazier.)

    One thing he mentions about writing is about his (and really pretty much any trade/tech book writer's) material being available on torrent sites. This one has burned me up for years, but it is something that even publishers have seemingly given up on. I think that they have given up, thinking that. 1. People who wouldn't buy a book at all might see your work and at least tell others. 2. People who would buy a book might check out a book like this but they would actually purchase the book if they want to keep it.  Stolen PDFs of books or not, there is no question that you will get a lot less coin for book writing than you could doing something else. But still to this day, having a book has enough prestige that I can minimally delude myself into thinking that it is worth it.

    Admittedly, as Allan says "I think my biggest success is reflected when people e-mail me, come up to me at a conference or talk, etc. who tell me that something I’ve done has helped them or they like it." I frequently say that a well thought out negative comment/review is extremely helpful, but for me, one "Thanks!" from a stranger I have never met is worth hundreds of dollars in terms of motivation. Just knowing that someone actually read the material and possibly applied it makes it all feel worthwhile. And admittedly, I have never asked to see verification that they purchased the book.

     

     

     

     

  • Why We Write Supplemental - I find out how long it takes to answer the questions myself

    My next entry has ran into a number of issues getting finished, and from the start, I have planned on blogging my “current” answers, so now is as good a time as any. I have taken the questions from all of the previous entries, and have left them as is, but picking the questions I wanted to answer (or wanted to force myself to answer!) To make sure this didn’t turn into a commercial, I took off the bonus question about other projects I am working on. Hopefully you have read about that on my blog already.

    ------------------------------------------

    1. Every superhero has an origin story, and in many cases it wasn't because they specifically were planning to go into the field of superhero-ness. I mean, clearly Peter Parker didn't really want to get bitten by a radioactive spider. So what is your story that led you to spend part of your free time writing about SQL?

    I was at a VBits conference in New York City, over 15 years ago (back when I was doing SQL and VB semi regularly). I met someone from Wrox and they were looking for technical editors for a VB and SQL book, and it sounded like fun. Back then books had 10 technical editors, so the pressure was a bit lower as you could be wrong and 9 other people would have checked the work as well. At the same time, the book’s editor and I started chatting about why all database design books (that weren’t written by Code, Date, Pascal, etc) ended their description of Normalization at 3rd Normal Form. So I was adamant that it would be a good idea to have a trade press book that was deeper than that, but still accessible to the average programmer. Then came my radioactive spider. An offer to write a book with an advance that was more money than I had ever seen in one place. Turned out to be a very good idea, as well as a very bad idea.

    I had picked up a lot of the practical aspects of database design building several database systems, particularly my first where I had to write/rewrite/modify all of the code (800+ procedures/triggers) by hand, helping me to feel the pain of design mistakes (even though my mentors had been quite good at db design. So I picked up one of C J Date’s books, and read a large part of it, and did my best to translate the topic from a bunch of technical/mathematical jargon and contrived examples that work for explaining the topic, but never seem to resonate with trade press readers because we are generally not academic minded. We want to get things done, and ideally, well. We set a deadline of around six months, and well over a year later, I (well, we) finally finished the book. It was the longest thing I had written in my life, and it was only fair before the technical editors beat me half to death…

    2. We all have influencers that have advanced our careers as writers. It may be a teacher who told you that you had great potential Another writer who impressed you that you wanted to be like? Or perhaps on the other end of the spectrum it was a teacher who told you that you were too stupid to write well enough to spell your own name, much less have people one day impressed with your writing? Who were your influences that stand out as essential parts of your journey to the level of writer you have become? 

    There are a few writers that I tried to learn from. Kalen Delaney was kind of my inspiration when I got started. I remember meeting her at a PASS conference and getting her to sign a copy of her 2000 book. I loved her book because it didn’t stop with “this is what to do”, but I remember it diving really deep and telling me stuff that, while perhaps not immediately useful, help you to understand how SQL Server does operations. I still have that book in my collection, and is the only book I have signed (other than the two MVP Deep Dives books that were signed at the release as our thank you to the teams.)

    I also am a fan of C S Lewis’ apologetics, because, while he doesn’t dumb it down, he does speak on a level that is accessible to the average person. It has definitely flavored my writing over the past few editions, because in my head I want my writing to feel intelligent, but also very human.

    My deflectors were never that vocal to tell me I couldn’t make it, but I don’t think I ever made greater than a C in an English class where writing was involved. I had always hated writing, and in retrospect I have no idea why I said yes to the book (unless it was the money :)

    3. As the years pass, how has your writing changed?  Do you feel like it is becoming a more natural process? Or perhaps you get more critical of your own writing to the point that it takes you longer?

    A little of both. On the one hand, I can certainly write a LOT faster than when I got started. Sometimes the words will just flow naturally, and I can sit down on my laptop and Tablemate TV tray and write for hours. When I wrote the 2000 Design book, I averaged 3 pages a day (3-4 hours after my day job), when I knew what I was trying to do. Now I can easily hit 6-10 pages a day.  What makes this a bit more interesting is that in 2000, my publisher did a lot more of the work. They edited for English (making me say “whilst” a lot), they redrew artwork, etc. Now almost all of that work is done by we authors, except that there are editors that tweak the English for you.

    On the other hand I tend to write a bunch of text and then sit on it for a lot longer than I would like. These answers will take a few hours to write, and then a few days to re-edit and re-edit.  I don’t want to get anything wrong, and even worse, I don’t want to offend anyone inadvertently.

    Probably the biggest thing that has changed my writing has been SQL Saturday. Before we had so many SQL Saturday events, I was super lucky to speak once a year at the SQL PASS event. Speaking is generally where I learn what people want to hear about, and what I need to write about. If a session falls on its face, then I know that either people don’t want to hear about a topic (I am looking at you Sequence Session), or, as was the case with my first database design session, that I had a lot to learn.  The fear of looking stupid in front of the crowd has always pushed me to produce and test way too much material for a session, often started from stuff I have written about in the book. The extra material I write then ends up in a blog and/or chapters of my next book. So it is kind of a symbiotic relationship between speaking and writing, and that has always worked well. 

    4. Assume a time machine has been created, and you are scheduled to speak to a group of potential writers, in which you and I are in attendance. Without concern for the temporal physics that might cause the universe to implode making the answer moot, what would you tell "past us", and do you think that your advice would change where you and I are in our careers now? (like would you tell yourself to get excited for the day you will be sitting here for a rather long period of time answering interview questions and not getting paid for it, instead of feeling the warm sun on your forehead?)

    “Don’t. Do. It. Run away fast. If there is anything else in life you can see yourself doing with your free time. Do it.

    Think back to high school and/or college when you had that writing assignment. You turned it in to your teacher and when you got the paper back, you got a C. Now imagine that instead of giving it to one person to read, you give it to millions. Of those millions, you will be lucky if hundreds read it. Of those hundreds, you will easily get a failing grade from 10% of those people, no matter how good your writing is. If you are lucky, a few of the sane readers who disagree with you will explain in detail their problems with your writing. Unfortunately you will often get the insane ones who write ‘it sucks, and his mother should be ashamed of raising a child that would turn out such dreck.’

    Finally, you will do most of your technical writing for no pay. None. And when you do get paid, not only will it often be less than minimum wage, getting paid will empower the person paying you to bend your ideas to meet their needs.

    If you are still listening to my speech and haven’t run out of the room screaming… it isn’t all bad…

    Those people who disagree with you, listen to them. You will learn more from an intelligent bad review than you will from a completely favorable review. (Though the favorable reviews do balance out the bad ones to keep you sane.)  And the sting of the bad reviews will drive you to avoid making the mistakes that lead to bad reviews. And even if you never make one shiny nickel writing, doing the proper preparation to write about a topic will leave you with a deeper knowledge of the topic you write about. And since you probably make your living with the product you are writing about… it will pay off in the end. ”

    ----------------------

    At one time in my life, I considered being a pastor. I went to my pastor, Dr Allan Lockerman and asked what I needed to do. He said the same thing to me. Is there anything else you can see yourself doing? I was just becoming a decent SQL programmer, and I said that I loved what I was doing. He told me to keep doing it for now, and so far it has stuck.

    As it turned out, I love SQL, and (after getting through the aforementioned pain,) I love writing about it, and truly I love everything these things have given me. I have enjoyed my 9 years as a Microsoft MVP, brought about at least in strong part with the books and blogs I have written over the past 11 or so years. It has actually become a kind of addiction. If I am not writing, I am preparing to write or prepping a presentation (which is just like writing in front of a live studio audience).

    5.  What would you say has been your greatest success story as a writer, even if it was not a commercial success? And conversely, have there been any projects that were just complete disasters that you probably could have looked back and realized that before you got started?

    My favorite success has been as a writer and editor of the SQL MVP Deep Dives and SQL MVP Deep Dives 2 books. First off, because I was able to work with my favorite people, with 53 MVPs working on the first book, and 64 on the second, you just can’t beat that. We made well into the 5 digits for a couple of great charities with these books, and delivered a heck of a great bit of content, with ~15 page chapters on a very wide array of topics that would be useful to any SQL DBA, Programmer, or Data Architect.

    My biggest failure would have to what I can see now was the quality of my first book, the one with my picture on the cover (I never loved that aspect of Wrox books, but my photographer did a decent job in any case). I was new at writing, and hadn’t had the experience of being ripped apart from some of the great people who reviewed my book. It wasn’t bad because of the great technical editors I had working with me (some of them were very brutal in their reviews which I really appreciated…after the book was finished!). I still hear about people having that book on their desk and really liking it, but if I could I would love to do an exchange program to get one of the later books in their hands.

    For the 2005 book, I met the most horrifically wonderful editor I have ever worked with, Tony Davis (@TonyTheEditor). He took my first draft of pretty much the entire book and ripped it apart and helped me put it all back together again. When we finished (months after I had expected to be finished!), the book was so much better and I I still work with Tony blogging and writing with Simple-Talk). And definitely no slouch,  Jonathan Gennick (@JonathanGennick) has guided me to even greater heights over the past two editions. That is one of the big downsides to writing books, unlike the Internet where you can replace material, books exist forever…

    6. Finally, beyond the "how" questions, now the big one. There are no doubt tremendous pulls on your time. Why do you do write?

    I must admit that I started this ongoing series of blogs to figure out just why I do this. Because there must be a good reason for it that I can glean from other’s answers. For all I can gather, I write because I do.

    When I got started, I wanted in on the gravy train that book writing offered. Of course, a lot of changes were in store for the technical book business with the Internet providing more and more material for less and less. So while I have bought a few interesting trinkets now and again from my writing proceeds, the grand riches were never quite there. As I alluded to in my past me speech, I certainly don’t do this for the money at this point.

    In some part, I find I do it a bit out of ego. I have produced 5 versions of the Pro SQL Server 20XX series, and when I think of letting someone else take it over, I just can’t stand to consider it. I know it will occur some day, but I don’t want to forecast when. The fact is, when I have no idea how to make the next edition better, I will probably give up. I truly hope that ego isn’t ever my only answer to the why question, but it certainly does fit in.

    The answer I am most pleased with is that I do it to keep up. By forcing myself to write about the subject, I keep up with the latest version of SQL Server even if it takes a few years to actually get to the point of using the product in day to day work. For example, for 2005 I wrote a chapter in Pro SQL Server 2005, where I covered all of the new T-SQL features in SQL Server 2005. I learned the features very deeply, and to this day can use most of them without a lot of assistance from the F1 key. Writing gives me the impetus to learn features that are then useful day to day.

    So my wishy washy answer is that I get a wee bit of money, a modicum of ego boost, and lots of deep practice of my favored trade, but I still hope that a future interviewee with provide me with that “aha!” answer that helps me to figure out why I keep doing this to myself.

    -------------------------------------------------------

    Here I usually recap and comment on the answers given, but instead, I am going to ask you to do the same. In the comments, please say anything you want to, ask any questions you want to ask me or future entries, suggest future entries, etc. I will respond and answer any questions you want to hear too.

    How long did it take? Quite a few hours over several days over a few weeks… Whew…

  • Upcoming Database Design Pre-Cons

    In July and October, I will be doing my "How To Design a Relational Database" full day conference in two places. First on July 26 for the East Iowa SQL Saturday, and then for the big daddy SQLPASS Summit in Charlotte, NC on October 14. You can see the entire abstract here on the SQL PASS site. It is essentially the same concept as last year, but this year I am making a few big changes to really give the people what they have desired (and am truly glad to have a swing at it several months before the summit to iron out any wrinkles.)

    The first third of the day will be an example driven lecture that will be as tight as I can make it and still include all of the important foundational information that I can pack in. We will talk about the history of relational databases to get a feel for why we have the database environment that we currently have, then terminology, the data modeling process, a practical overview of the normal forms, and a bit about implementation. If it sounds like a lot in two hours, then you are right, but it is information that is essential to understand what we are doing the rest of the day (and hopefully the rest of your career!)

    The second third of the day will be the class designing a database "together". I will have distributed a set of requirements for a database for us to design as a class, each person taking a turn to add an element. As we add elements, the class will be able to discuss if the item added is correct or not, simulating a typical meeting with N * 2 opinions from N persons.

    The final third of the day will be a small team design session. I will distribute requirements to the class, broken up into several groups, and they will take them and do the design... Probably an hour later, I will take a picture of the design and put it up on the big screen for us to look at and discuss. This is a task I have done each time I have done this pre-con, and it is always interesting to see the several different ways the models turn out. Sometimes I learn a way to think about the problem that I hadn't thought about (and sometimes that is a good thing.)

    Along the process of the two design sessions, I will be keeping a tally of topics that we haven't touched on in the discussion so we can hit those topics before the day is over. If we are lucky and the class is active enough, this section may not even need to exist other than to say "goodbye and good luck".

    So hope to see you in Iowa City in late July (26), or (and perhaps again for) in Charlotte on October 14th at the SQL PASS Summit.

  • Why We Write #6-An Interview with Kevin Kline

    Wow, so far in this series, I have interviewed some very good friends, and some truly excellent writers (and usually both), but today, following on the heels of Jason Strate, we are going to hit someone whose name is synonymous with community, a person who really needs no introduction. According to Bing, Kevin Kline (@kekline) is the most important Kevin Kline on Twitter (though it clearly could be due to my typical searches, I am giving him the benefit of the doubt… here try it yourself: http://www.bing.com/search?q=kevin+kline+twitter. Apparently there is an actor and hockey player by the same name?)

    I first remember meeting Kevin personally at pre-flood Opry Mills mall in Nashville, not terribly long after he had received his first MVP award. He was president of PASS back then, and I was kind of in awe (like most newbies are of MVPs… doesn't last :). For the life of me, the only thing I remember about our conversation was a discussion of Elvis Costello's (whom I am a big fan) spouse (Diana Krall, who I had little knowledge of at the time but am starting to like due to her recent album that I am listening to as I write this…and no, not for the cover picture either).

    Kevin has had a great side career as a writer, having written one of the most influential SQL books of all times, SQL In a Nutshell.  His list of accomplishments is long, and I am quite proud to have had his name on the cover of two editions of my Relational Database Design books. He and I are also officers for the Nashville SQL Server User Group (along with Joe Webb and Tamera Clark, to name a few others…), but I seem to run into him more at PASS events (the Summit, last year's rally, and SQL Saturday events all of the time) more than in Nashville because he is a well sought after speaker, and as the Director of Engineering Services for SQL Sentry (a trusted brand, for sure, and hopefully the source of a few more entries in this series!), he is always going. In fact, I am sending him these questions just now so he can do the interview while he is on a trip…

    ------------------------------------------

    So, after that long introduction of a person who needs none, I have a few questions for you:

    1.  I know it has been quite a while now, but there was a point in time when you didn't have a blog, didn't tweet, and had no public presence whatsoever. And then, one day, you made the decision to put yourself out there. What prompted you to get started writing, and what was the first public work you produced?

    There’s a bit of a funny story to how I got started writing, which was way back in the stone age a decade before the advent of blogging or social media. Way back in the early 1990’s, I wasn’t very far out of university and still aspired to go back and get a master’s degree. As I studied the curriculum requirements, I noticed that I could complete the degree two semesters earlier by taking the thesis track rather than the coursework track. Shortcut discovered! I was already working at that time as a systems analyst on VAX/VMS Oracle projects and decided to write a thesis on an exciting new technology and how it would impact an industry that predominantly built applications around character-mode systems – the Graphic User Interface! Yes, that’s how long ago we’re talking.  While mapping out the material I planned to write, I also encountered a call for authors in the back of one of my favorite magazines of the time, Datamation. I thought “Why not pitch the thesis as a book and maybe achieve two good things with one set of hard work?”  I was surprised that book proposal was accepted.  I finished the book, but sadly never finished my master’s degree.

    2. As a kind of a follow on question: As a technical person, I know that before I wrote my first book the longest thing I had written professionally was a resignation letter from my previous job.  Did you have any background in school, or even hobby that helped you as you wrote your first article, book?

    I’d wanted to be a writer from a young age. I entered essay contests in middle school and high school and I edited the high school literary magazine. Approaching graduation, I remember a fateful night in which I was trying to figure out what to do with my life, literally. On a sheet of loose leaf paper, I’d written all of the things I enjoyed doing in a column on the left and on the right, a column of careers that I felt like I could earn a decent living that I wouldn’t hate.  Let me be honest, I was poor, from a poor family, and dead tired of poverty. So I crossed off the list a number of the careers that I knew I would enjoy, like writing or journalism, but wouldn’t likely provide the standard of living I was aiming for. I said to myself “If it was meant to be, the opportunities will come”. I had no notion that it might be a true statement.

    3. We all have influencers that affect our trajectory as a writer. It may be a teacher who told you that you had great potential, or another writer who impressed you that you wanted to be like? Or perhaps on the other end of the spectrum it was a teacher who told you that you were too stupid to write well enough to spell your own name, much less have people one day impressed with your writing? Who were your influences that stand out as essential parts of your journey to the level of writer you have become?  

    Great question. The biggest positive influence as a mentor was my older brother, Dan, who I later brought in as a co-author on SQL in a Nutshell. He was an English and History major in college, worked as a technical writer, and eventually became a full professor with a PhD in medieval studies.  But at the time I was coming up, he was the one who coached me through writing my first essay on an old 8-bit Kaypro.  I won that essay contest because of his help.  And he’s improved my writing countless times since then.  Another big influence was my favorite college history professor, Dr. Richard Gerberding, who helped me hone my analytical skills when writing term papers and the like.

    4.  What would you say has been your greatest success story as a writer, even if it was not a commercial success? And conversely, have there been any projects that were just complete disasters that you probably could have looked back and realized that before you got started?

    In one way of looking at it, I’d say that my greatest success was writing that very first book Oracle CDE (Cooperative Development Environment). It was not a good book. It wasn’t thorough. It wasn’t clear enough. It didn’t provide enough realistic or well-considered examples.  And as a result, I got what I deserved. It didn’t sell well. It didn’t earn a penny more than the royalty advance. It took 9 months to complete, consuming about 600 hours of my time, and since this was the days before email, it had to be printed and mailed to the publisher. It weight 9 lbs at completion – I felt like I’d birthed a baby when I put that manuscript into the post.

    But, like a lot of runners will tell you, the point that their lives changed wasn’t when they crossed the finish line. The point at which my life changes is when I made the commitment to write the book and somehow found the determination to see it through to the end.  Although I was in my early 20’s at the time, it was a very formative experience that changed me in many ways. And, like a lot of first tries accomplished with good intentions, it gave me the inspiration to keep trying and to do better.  I know a lot of great cooks whose first meal was a disaster, but getting into the kitchen and turning on the burner was the scariest part for them. It was the same for me.  And, thankfully, additional opportunities were right around the corner.

    5. Assume a time machine has been created, and you are allowed to go back in time to speak to a group of potential writers, in which you and I are in attendance. What would you tell "past us", and do you think that your advice would change where you and I are in our careers now?  Like would you tell yourself that one day you would be sitting here for a rather long period of time answering interview questions and not getting paid for it, instead of doing something else?

    My time machine advice might sound a little weird to a group of writers, but I hope it makes some sense. I’d say something like this:

    “Writing is many things. For one thing, it’s hard work. If you’ve never done hard things, you won’t be a writer. If you quit the soccer team after the first kicked shin or gave up on the band because marching season was too hot or never finished a guitar lesson because your fingertips were sore, you’re probably never going to be a writer. It’s hard. If you want to be a writer, start by doing hard things in your life and seeing them through to the end – whether it’s the bitter end or the happy one. For another, writing is learned by observation and experience.  If you don’t read a lot of different writers, you won’t be a writer. If you can’t stomach poetry or hate classic literature or don’t enjoy wading through a mass of words written by other human beings, you will probably hate creating your own mass of words and, when you do write, it won’t be any good. Finally, writing is storytelling, and storytelling is the relating of human experiences.  So get out and dive in to a variety of human experiences. Retell the good stories of your grandparents and parents. How would you tell it differently?  Walk in the grass in bare feet. How would you describe that?  See a sad movie. How would you relate that experience? Take a pottery class. What did the clay feel like in your hands?  Or, try this one which really happened to me on one of my first international trips, explain what a donut is to a person who’s never even seen a donut. If you’ve had a donut, your mouth is probably watering right now just thinking about your favorite one. You can recall its texture in your fingers right now, just a few inches from your mouth, still warm from the baker’s oven.  Its fragrance beckons you to enjoy the explosion of flavors the signals safe and home and mornings at Sunday School. (At least, that’s what it does in my mind). Now, how do you make that moment come alive for someone sitting on the other side of the page from you? You have to experience it.  And once you’ve experienced it, write it.”

    6. Finally, beyond the "how" questions, now the big one that defines the interview series. Why do you do write?

    I can’t deny that when I first started writing it was entirely for mercenary reasons. I married early, started a family early, and accrued all the bills that go along with that at an early age.  I needed to find ways to supplement my income and, at least back in the 1990’s, writing made a lot more money than working part-time at the hardware store. But I still write a lot today, now that writing doesn’t pay more than working part-time at the hardware store.  At least when it comes to technical writing, I find myself attracted to two things about the writing experience.  One, I like to understand things that interest me as fully as I can, and there’s no better way to do that than to try to teach others about an important topic. Of course, we’ve all had bad teachers who don’t care about their topic. But good teachers want to know what the heck they’re talking about and, for me, writing as if I were trying to teach the topic is a great way to actually learn the topic more thoroughly.  Two, I love sharing stories.  On Twitter, I often share interesting links because it was something or from someone who I’ve enjoyed reading myself.

    Bonus Question: Are there any projects coming up that you would like to tell people about?

    I’ve been writing mostly hard technology content over the years. But as I rose in my career to director-level and ascended to presidency of PASS nearly 10 years ago, I began to formalize my thoughts about leadership, influence, and professional skills specifically for IT professionals.  It’s a new story I have to tell, taking those leadership and professionalism skills I learned at that time and turning them into lessons we all can use as IT professionals.  It’s a common stereotype in our industry that “that IT guy” is an arrogant loner who hangs out in a darkened basement and rolls his eyes with an exasperated sigh whenever s/he’s asked even a simple question. Do you know that person or work with them or for them?  I, along with my partner Joe Webb, have a number of private corporate clients. And I’ve started a website called http://ForITPros.com where I’m posting a lot of the things I’m learning.  I’ve also gotten the opportunity to write for a couple IT leadership-related websites, but just haven’t made it a priority for now.

    I’ve also been doing a lot of fun, new creative things at SQL Sentry. I’ve started a monthly newsletter there and, although I haven’t conquered the learning curve yet, doing a lot of video recording for our upcoming website http://SQLSentry.TV. I’ll be talking a lot about plain ol’ SQL and query writing. And I’m also writing new example-based content on SQL coding with the team at http://SQLTeam, specifically at http://Examples.SQLTeam.com.  So I hope to see you on there, Louis, providing good feedback as you always do.

    ------------------------------------------

    Reading these interviews, I am starting to notice a rather big divide in writing “artiness” between those people who want to be writers, and those who do some writing. I know I tend away from the artiness usually, because it is not natural to me. I am not exactly sure what the amount of artiness really means, or if it really means anything in the technical writing arena. For example, Kevin’s answer to #5 is extremely good, moving even. His advice is great of technical writers, but it is presented in a manner that is beyond that of someone who is a technical writer spewing facts.  I wonder how that affects his writing? I mean, there is a big difference between technical writing, telling someone how to eat a donut, and telling them why they need to eat it, and then convincing them to eat it. Bearing in mind that donuts are not inherently good for you. It is fairly easy to tell someone that duplicate data is bad, but a lard laden sugar holder is a known evil. Plus, I know my editor would have cut any sentence with language like “explosion of flavors” out pretty quick as not being “necessary”.

    Along the lines of reading others, that can be difficult, but worth it. I have been reading the latest edition of Database Design for Mere Mortals, by Michael Hernandez of late to see how he tackles the subject of database design While I feel like our books so far agree on much of the material, but our approaches and even terminology are very different in places. I would suggest you be careful to not read others books on the subject you are writing on simultaneously to avoid plagiarism. If you want to stop being a writer, getting caught plagiarizing is a very good way to do so.

    Wow, ok, next up is Laerte Junior, who is an active writer about PowerShell…

  • Why We Write #5–An Interview With Jason Strate

    My next guest is a person I have known for years, and have worked with on several occasions, Jason Strate (@stratesql). Jason is a very active writer and speaker (at my first SQL Saturday event, he spoke four times!), and always seems very busy. His blog (jasonstrate.com) had 23 posts just last month, and his twitter account is always active with interesting SQL and non-SQL tweets.

    If the blogs and tweets weren't enough, just this past year, Jason was a coauthor on one book last year (Expert Performance Indexing for SQL Server 2012), contributed to another (Pro SQL Server 2012 Practices), and is credited as a tech editor on yet another (Professional Microsoft SQL Server 2012 Administration), and if all this wasn’t enough, published an kindle eBook about SSIS (31 Days of SSIS with SQL Server 2008 R2).

    I look forward to seeing Jason's answers to my interview, as he is probably the most driven writer I know, so I expect his answers will get me that much closer to the understanding of why we writers do what we do...

    ------------------------------------------------------

    1.  There was a point in time when you didn't have a blog, didn't tweet, and probably had no public presence whatsoever. And then, one day, you made the decision to put yourself out there. What prompted you to get started writing?

    When I first started writing it was basically a way for me to read something at home, then catalogue it for ease of access when I got to work.  Often it was just a link with an explanation to why I thought it was interesting.  Other times, it would be a script with the tweaks I had made - blogged just for safe keeping.  I did this for a number of years without any knowledge of whether people were reading the posts, I was just keeping a running collection of notes.

    At some point, about 10 years ago, I watched a webcast that Kimberly Tripp had put together on index fragmentation.  One of the big take-aways that I got from the presentation was that someone was able use sharing of information as an aspect of their career.  Color me naive, but the idea of writing serious articles, or posts, hadn't occurred to me prior to that point.  Afterwards, I started putting a little more effort and aim into the posts that I was writing.  Because an with audience for a fragmentation video, there was surely an audience for something I could write.

    2. We all have influencers that affect our trajectory as a writer. It may be a teacher who told you that you had great potential, or another writer who impressed you that you wanted to be like? Or perhaps on the other end of the spectrum it was a teacher who told you that you were too stupid to write well enough to spell your own name, much less have people one day impressed with your writing? Who were your influences that stand out as essential parts of your journey to the level of writer you have become?

    I wish I had a really good story here.  There is no oppression from teachers or inspiration that bestowed on me, I basically kept my head down while serving time in the educational system.  The only impression that school left me with was that writing wasn't important in life and if you made a career of it, you better be prepared to poor for a long time.  So uplifting, but it would be no surprise that from an early age I didn't see the value in writing.

    Now, I did have an influencer in my 20s that did get me started on the path of self-improvement that has to be noted.  And while it isn't specifically a writing influencer, he did get the mud moving to help me re-envision what was possible.  This was my friend Steve Coyle, for most of my 20s he was a constant friend that was always there to talk about how we could help motivate each other to move forward.  He was the first person I met that explained to me the value in networking.

    As I mentioned, my original inspiration was from Kimberly Tripp.  She was also an influencer, along with a lot of people that readers already know.  These include Louis Davidson (editor note: who?), Kevin Kline, Denny Cherry, Thomas LaRock, Brent Ozar, Paul Randal, Grant Fritchey and Jonathan Kehayias.  As I've grown in my writing, I've watched how they write and looked to ideas on how to improve how I write. 

    In the past couple years, I've started looking outside the SQL Server community to find new influencers.  This has brought in a few new names.  One is Darren Rowse, who wrote the ProBlogger books, he's has had a lot of influence on how I put topics together.  It's helped me find not just ideas to write about but ways to package them to attract readers.  There's also Tim Ferris and Leo Babuata - who are fairly opposite self-help authors.  One thing I've started to realize is the need to be influenced and seek improvement across my entire spectrum of interests, because it helps raise the level of everything and raising the heights that I can take my writing and life.

    3.  As the years pass, how has your writing changed?  Do you feel like it is becoming a more natural process? Or perhaps you get more critical of your own writing to the point that it takes you longer?

    There are a few ways my writing has changed over the years.  One of the first big changes was transitioning from just posting code and links to explaining the value and purpose for that content.  This led to an increase in the length of posts and the depth of the topics.   Ever since I wrote the indexing book, my writing has really changed.  I've become a lot better at drawing connections between what I write and the images and scripts included in posts.  I try to explain everything, which makes for some really long posts.  But that problem has been solved with the idea of breaking posts into multiple topics. 

    I am probably more critical of my posts that I used to be, but not overly critical.  I really like to make certain that in every post, from the question or idea proposed to the conclusion, that there is a clear linear path of logic.  I often use Sarah, my wife, as a reviewer for posts to be sure that, while she may not understand the content, does the logic of the conversation flow from beginning to end.  She likes to point out that I don't use enough commas.

    4. Assume a time machine has been created, and you are allowed to go back in time to speak to a group of potential writers, in which you and I are in attendance. What would you tell "past us", and do you think that your advice would change where you and I are in our careers now?  Like would you tell yourself that one day you would be sitting here for a rather long period of time answering interview questions and not getting paid for it, instead of doing something else?

    Given the chance, I would like there are a few things I would have impressed upon an early group of writers.  First, make sure you are writing under some form of branding from the start.  I've been blogging on www.jasonstrate.com for only about three years.  Everything before that had moved from time to time between probably five or six different hosts and platforms.  Often, I'd build and then abandon my audience without knowing it. 

    Next, spend some time really developing the blog posts.  They don't need to be masters of art.  But they need to have an opening, body, and closing.  It was years before I got to that point - which had been hammered in while in school.  It was a long time before I realized, that it made a difference in blogging. 

    And since you're working on developing your writing, use the blog to explain something, not just share things you find.  Got a cool script - fine, post it - but also write down why it is cool and should be used.  When I started explaining things, more people started to care about what I was writing down.

    Finally, figure out how to write on a regular basis.  At least once a week.  If you're writing on a blog, its meant for an audience.  If you aren't writing weekly or at least a few times a week, what is going to motivate an audience to stick around or come back.  There are so many voices in the world today, that yours needs to stick around if you want it heard. 

    I'm not sure I would have listened, but it would have been cool to have gotten that advice.  I'd like to think that had that happened, I'd probably have shaved 3-5 years off the progress it took to get to where I am now.

    5. Finally, beyond the "how" questions, now the big one that defines the interview series. Why do you do write?

    There are a few driving forces behind why I write.  First, I'm naturally curious.  When I was a kid, picking up an encyclopedia for a single topic always meant I would read a few others.  Writing about SQL Server to me is part of that curiosity, when I hear a best practice, I want to check it and verify it.  I want to see that it actually happens and understand what's going on.  Along with that, writing helps me organize my curious endeavors.

    I also write for other people.  Those that read what I write about and gain something, that's a big motivator.  I'm often astounded when people are excited to hear my thoughts on something or happy that I get to come out to their company and provide mentoring.  Because to me, I'm the guy who licked a telephone line once to see if it gave off more or less of a jolt that a 9-volt battery (the answer is more) - and me giving advice is an often humorous turn of events.  But, back to the other people, that I write for...

    Probably the best answer is a quote from the movie Groove:

    Guy: Why do you do this to yourself? Don't even get paid, risk getting arrested, for what?

    Ernie: You don't know?

    Guy: No.

    Ernie: The Nod.

    Guy: The Nod?

    Ernie: Happens to me at least once every party. Some guy comes up to me and says "Thank you for making this happen... I needed this. This really meant something to me." And they nod... and I nod back.

    Guy: [scoffs] ... That's it?

    Ernie: That's it.

    Bonus Question: Are there any projects coming up that you would like to tell people about?

    The most exciting upcoming project I have has to do with where I want to take my blog.  I've got a number of posts that people really like.  But writing isn't always the best platform for everyone that may be interested in those topics.  My plan is to start recording webcasts in the 5 to 10 minute range that encapsulate those posts and deliver them in a new manner.  I'm hoping this will help me expand my audience.  Also, I'm hoping it'll help me write better since it will force me to evaluate a lot of old posts - and possibly re-write a few of them.

    ---------------------------------------------

    Excellent…simply excellent. I love the answer to the why question. I am personally very shy, so I would have NEVER have met any of the people I have if I had never started writing, blogging and speaking, so I identify with that a bit.

    As for my question for “the” answer to the time machine question that will trigger me writing my own interview answers, Jason was way off that mark, with much more interesting answers. Branding is a great idea, but even if you don’t feel like that is for you, stick with the platform you have where-ever, and probably only move once and for a good reason. That is why I have my blog still on sqlblog.com. It is a good group of bloggers, I really like Adam Machanic and Peter DeBetta (though I haven’t seen him since he drank the blue Kool Aid a few years back), and I get more hits than I could on my own. Same with some of my simple-talk work, Tony Davis and Andrew Clarke edit my work and gives it a professional air that I could never.

    The note about working on the blogs for a while is great too. For my What Counts For a DBA series of blogs on simple-talk, I try to treat that a bit like art, and really work for hours to hone them. For my technical posts, I am a lot freer with the text, but spend as much time as I can testing the code I put out, doing my best to make sure that the query I post works not only for my server usage, but for any server usage I can think of. Writing only what you have used in production is a great disservice to your readers because you don’t do everything. You might present an idea, but if you want to state definitively that solution X is the the best solution, you had better have tried A-W and Y and Z too.

    Anyhow, next up is another friend of mine who has been influential in many of the members of the SQL Server Community. Kevin Kline. Till next time, I hope these posts inspire you to become my 100th subject in a few years (and will answer the inspiration in just that way, naturally!)

  • Speaking about Relational DB Design the next two weeks (Knoxville, then Atlanta)

    On Friday, May 10 I will be speaking for the Knoxville SQL Server User Group, and on May 18, I will be speaking at SQL Saturday in Atlanta. Both days, my session is my old chestnut “Database Design Fundamentals”. It is my favorite session to do because of two things. 1. I love to talk about database design 2. No demos :).  The abstract is:

    In this session I will give an overview of how to design a database, including the common normal forms and why they should matter to you if you are creating or modifying SQL Server databases. Data should be easy to work with in SQL Server if the database has been organized as close as possible to the standards of normalization that have been proven for many years. Many common T-SQL programming "difficulties" are the result of struggling against the way data should be structured and can be avoided by applying the basic normalization techniques and are obvious things that you find yourself struggling with time and again (i.e. using the SUBSTRING function in a WHERE clause meaning you can't use an index efficiently).

    It is a session that I haven’t done in short form since PASS 2011, and submitting this as a session was one of my resolutions this year, because it is truly my favorite regular session (my second favorite session is the precon version, because we get to spend a good amount of time on the subject.)

    Additionally, at SQL Saturday Atlanta, I will be doing a lunch session for Red-Gate called: What Counts For a DBA: Observant. It is a session that is 33% professional development, 33% about where to find info about your server, 33% about monitoring your server and 11% demo of the SQL Monitor (and a lack of math skills is part of the show.) This is not the normal advertisement session, I wrote it myself, but is intended to be useful to anyone immediately without buying their tools, and to show you how Red-Gate’s tools can assist in observing your server’s behavior

  • Why We Write #4 - An Interview With Doug Lane

    My next guest is Doug Lane, who has been blogging for the past few years on his website: http://www.douglane.net/. Doug is also a speaker who has spoken at SQL Saturdays as well as the SQL PASS Summit, and as I write these interview questions was on his way to speak at the SQL PASS Business Analytics conference in 2013. I also liked quite a few of the pictures in his photostream here (http://www.flickr.com/photos/58251371@N06/), particularly because I tried the bean bag juggling, though I cannot find the picture anymore.

    I have never met Doug personally (so as such have never mistaken him for anyone else), and am only acquainted with him through Thomas LaRock's Rockstar Blogger list, so I am looking forward to finding out more about him from the questions in my interview.

    He also once won a SQL Cruise from Idera with this YouTube video:

    ------------------------------------------

    1. There was a point in time when you didn't have a blog, didn't tweet, and probably had no public presence whatsoever. And then, one day, you made the decision to put yourself out there. What prompted you to write that first blog entry that got you started?

    I had a personal blog about 6-7 years ago but I struggled with it. I did two posts: one about music I listen to while running, and one about a camping trip I took. It was horrible and nobody read it. I'm hoping the internet found a way to bury it alongside my MySpace page.

    Then, in late 2010, two things really pushed me to get back into blogging: Brent Ozar's blog and Steve Jones' presentation, "The Modern Resume". Steve convinced me that having a blog was important, and Brent convinced me I was capable of doing it. I'm immensely grateful for their influence. There's no way I'd be writing today without it.

    2. We all have influencers that affect our trajectory as a writer. It may be a teacher who told you that you had great potential, or another writer who impressed you that you wanted to be like? Or perhaps on the other end of the spectrum it was a teacher who told you that you were too stupid to write well enough to spell your own name, much less have people one day impressed with your writing? Who were your influences that stand out as essential parts of your journey to the level of writer you have become?

    I've heard stories from friends about how they had teachers that told them they weren't cut out for writing, science, athletics, music, and so on. It makes me enormously grateful to have never had a teacher like that. I had some uninspiring teachers, sure, but never one that told me I was destined to fail at something. In fact, several of my English teachers encouraged me to write. There's one in particular I'll never forget. Diana Daniels was my 7th and 8th grade English teacher. For one assignment, she gave me a note that said this:


    I still have it. I've gradually thinned out the stuff I kept from school but that one always makes the cut. I still feel good when I read it, even though it's from 25 years ago. Sincere encouragement lasts a lifetime.

    I would have LOVED writing for Saturday Night Live, Mystery Science Theater 3000, or Archer. I even chose my college, The University of Iowa, based on the fact they offered screenwriting classes and had a heralded creative writing program. While a writing career for film or television didn't come to be, I'm a firm believer in things happening in the right time and place. I can still write blog posts, presentations, and the occasional ultra-low budget screenplay with a sense of humor.

    3. As the years pass, how has your writing changed? Do you feel like it is becoming a more natural process? Or perhaps you get more critical of your own writing to the point that it takes you longer?

    Like all writers do, I think I'm getting better with practice. I'm getting better with tempo and efficiency. I'm also getting better at expressing my personality through writing without it resembling a train of thought. I'm a little faster now than when I first started. I don't struggle as much with how I'm going to say something.

    On the other hand, I take more time now to make sure what I'm writing is technically correct. I feel like I need to be more accurate and informed on my subjects. When I first started, I thought, "If I miss this detail or that, it's okay." Now I try to make sure the minor details all check out too. As we all know, there's NOTHING worse than being wrong on the internet.

    4. Assume a time machine has been created, and you are allowed to go back in time to speak to a group of potential writers, in which you and I are in attendance. What would you tell "past us", and do you think that your advice would change where you and I are in our careers now? Like would you tell yourself that one day you would be sitting here for a rather long period of time answering interview questions and not getting paid for it, instead of doing something else?

    First, I'd make sure they were all in a room on the ground floor. Then I'd tell them that in 2013, all of the following will be vastly more famous than even the most popular blogger: a monotesticluar man who cheated like crazy in French bike races, a show about unclaimed storage units, an unfinished calendar from an ancient civilization, skinny jeans for men, and a singular picture of a cat who looks unhappy. Many writers will throw themselves out the windows in shock and despair.

    Once the glass shard-encrusted writers have been pulled from the shrubs outside the window (we're on the ground floor for a reason), I'd tell them the good news. I'd show them fivethirtyeight.com, lifehacker.com, deadspin.com, and of course some SQL Server-related blogs. I'd tell them there are huge audiences for the things you're interested in. Combine that with the means to self-publish and promote, and no one can prevent you from being a success.

    I'd also share the two thoughts really paralyzed me when I was first starting my blog:

    Paralyzing Thought #1: "Someone already wrote about this topic."

    Louise Hay put it brilliantly. Addressing a crowd at a convention, she said this: "You'll have all these speakers. We're all going to say the same thing, really. But we're going to do it in slightly different ways. And everybody wants to hear things differently. Just because I say something, some of you will get it, some of you will say 'What is that woman talking about?' But another teacher -- or three or six or twelve -- can say the same thing that I'm saying in different words. And you'll go, 'Oh, that's brilliant! Never heard that before.'"

    Whatever you're going to write about, someone's almost certainly already covered it. But they haven't written about it your way. People may not understand an idea until they hear you explain it in your words.

    Paralyzing Thought #2: "Nobody's reading this."

    That's true in the beginning. Unless you're already well known, very few people will be anticipating your first blog post because you have yet to demonstrate quality and consistency. Your blog is like a retail store. If what you have inside is interesting or useful to people, word will spread and more people will come. Be patient.

    It's scary putting yourself out there in printed permanence, I know. But nothing gets you past the fear of publishing faster than hitting the "Publish" button again and again. If you need ideas or motivation, pick up Problogger's 31 Days to a Build a Better Blog. You don't have to do all the exercises in 31 days. Just do one whenever you're stuck. (Let's pretend this e-book exists and I'm not violating the space-time continuum by recommending it.) Gradually, your content will get better and your audience will grow.

    I'd conclude by saying, "Don't stress over it. Nothing about your blog is as big a deal as you think it is."

    If I told Historical Me that he'd be interviewed about writing and it wasn't conducted from prison, I think he'd be excited.

    5. Do you have any assistance from an editor, either formally or informally. And in either case, do you like your set up do you sometimes wish you had it different?

    I don't have an editor, and I'm not really worried about having one until I start writing detailed technical posts. That day is still a ways off since I'm really enjoying the topics and level of complexity I'm covering now. I do like to bounce ideas off people, but I don't usually have finished posts proofread by someone else.

    A bad habit of mine is proofreading after I've published. (Don't get me wrong, I proofread beforehand too.) I think every post I've done in the last year or so, I went back and updated at least twice after it'd been published. George Lucas admires my inability to leave perfectly good work alone.

    6. Finally, beyond the "how" questions, now the big one that defines the interview series. Why do you do write?

    I write because I enjoy it and I want to make people's lives better, whether it's getting people unstuck from a technical problem or just making them chuckle. The work I do is immensely enjoyable. I want to share some of that joy. I don't care if I'm paid for it or not -- that doesn't enter into my thought process.

    Another reason I write is to establish myself as a resource people can come to when they need a problem solved. I'm not trying to come across as a technical expert (because I'm really not -- not by a long shot), but rather someone who's had to solve the same problems my readers are having. It's funny that 48% of my page views come from a post about connecting a MacBook to a projector. I had no idea that post would be so useful.

    While I don't set out to write life-altering material. I have a powerful story coming that I hope will re-orient people. I'm waiting for the right time to publish it -- probably early summer.

    Bonus Question: Are there any projects coming up that you would like to tell people about?

    One project I've had on the back burner for FAR too long: SQL Server Murder Mystery Hour. Like one of those murder mystery dinner parties, except done at a SQL Saturday or maybe one of the nights of PASS Summit. I've let this idea percolate for two years now (like I said, FAR too long). Here are a few ticklers:

    • Think Murder on the Orient Express, except it's a database or server that's killed. 
    • Attendees form teams to solve the crime.
    • Names of the suspects are a gag, e.g., Bill Freeley is a consultant.
    • Slightly over-the-top, Poirot-style interrogations will reveal clues.

    Okay, writing about it really has me excited to get moving on it again.

    ------------------------------------------

    Wow, this has been a fantastic read. Doug has given a lot of great and interesting answers to my questions. Some notes:

    • I too loved Steve Jones' presentation, "The Modern Resume". Chock full of fantastic information about how to enhance your career and behave yourself (Brent’s blog is great too :)
    • I have always wanted to be a sitcom writer too. I took some advice from the early Simpson’s writers. The goal is something that is funny over and over again, not just once. I know I still laugh at the Simpson’s after 15-20 viewings of many episodes.
    • The George Lucas comment about not leaving well enough alone is a problem I have too.
    • I feel a good bit of kinship with his “why” answers too (other than the MacBook thing, I considered editing Mac references out…)

    I am sad a bit that he didn’t hit on my answer to past me, but it will come one day. Like I have said before, when I get the same answer, I will interview myself…

    I love the idea for the murder mystery, and am hereby invited to SQL Saturday Nashville .Next to do the SQL Server Murder Mystery at least as a session, or perhaps some other time.. (you will still have to provide your own transportation :).

    Next up is Jason Strate (@stratesql), someone I have known for quite a long time (and have worked with several times), and am certainly looking forward to see what he comes up with. I have really enjoyed these interviews so far, and I hope you have too.

  • Why We Write #3 - An Interview With Rob Farley

    In the third entry in this series, we take a turn south, not in quality, but in the geography of our next entrant. Rather our interview target is Rob Farley, who is from (well lives in) Australia. 

    Rob Farley is a SQL Server MVP, and is quite a busy fellow. He is the owner of a consulting company named LobsterPot Solutions, located in Adelaide, and is a current member of the PASS Board of Directors. His blog is located at SQL Blog, where I also blog, and he tweets under the extremely unobvious handle of @rob_farley. He speaks regularly at SQL PASS conference, and sang during the keynote with the one and only Buck Woody (http://blog.datainspirations.com/2011/10/14/pass-summit-2011-day-3-keynote/).

    Rob has been a friend for quite a few years now, starting (in my mind) when I introduced myself to him at a conference thinking he was Arnie Rowland (yet another wonderful member of the SQL community, whom you might mistake for Rob from a hard working standpoint, but Arnie doesn't wear glasses regularly :). As I remember the story, neither were offended, much like when people mistake me for Orson Welles, I am honored because he was such a great writer. I will note too that Rob remembered it differently, but my version makes me sound far more intelligent. Rob is a tough one too, as I once worked with him on a Microsoft Learning contract in Seattle where he had recently had his appendix out (remember where he is from… and I get kind of sore from a 4 hour flight!)

    So, now that we have gotten past the silliest parts of the interview from my contributions, on to the interview questions.

    ------------------------------------------

    1. Think back to the moment you hit the first key, starting to write a blog, an article, a book, or whatever. What made you do it? Or perhaps, what were you expecting to achieve that was better than your previous use of free time. Have you gotten the benefit you were shooting for back then?

    It was April 2005. I had been getting more and more involved in the community, attending the occasional user group, both .Net and SQL Server, and there was an all-afternoon event about SQL Server 2005 that I went along to. I’d already been thinking about getting into blogging, and a conversation with one of the evangelists from Microsoft who was at this event meant that I wrote my first blog post the next day. At the time, I just figured that it might be helpful for someone, but didn’t know who that might be. At the time, I was feeling like I needed to be stretched, and blogging gave me the chance to write about the things that I knew, and to go a little further with things than I had before. When you write things down, you find yourself wanting to make sure that it’s right – blogging gave me that then, and still does. Unfortunately, I cringe at old blog posts, as I think we all do [ed; I know I certainly do!], but I still enjoy the experience of getting content into a blog-worthy condition and publishing it for other people to read.

    2. We all have influencers that have advanced our careers as writers. It may be a teacher who told you that you had great potential? Another writer who impressed you that you wanted to be like? Or perhaps on the other end of the spectrum it was a teacher who told you that you were too stupid to write well enough to spell your own name, much less have people one day impressed with your writing? Who were your influences that stand out as essential parts of your journey to the level of writer you have become?

    In school I had teachers that liked my writing, and teachers that thought it was awful. From that, I managed to discover that my writing had a particular style, a ‘voice’ (accent?) that could be heard. Today I value that in my writing, and try not to let it go. The times I’ve written book chapters I’ve worried a lot about losing that style, as editors often try to avoid having that kind of thing come through. It’s probably like how I’ve a tendency to use contractions. If I couldn’t’ve ever used them, I think I’d’ve struggled to write much, as people wouldn’t hear me in what I wrote. Perhaps JD Salinger had an effect on me, as Holden Caulfield’s voice came through so much in that book.

    3. Can you describe the process you go through to write (including any tools you find indispensable), from inception of an idea until it gets put out for consumption?

    This depends on what kind of thing I’m writing. :)

    I’m very big on just opening Live Writer and pouring text onto the screen. Of course I’ll need to spend time in SSMS, getting the queries right to demonstrate the technical aspects, but I like to just get the text flowing. I’m very self-critical, which means that I don’t try to think how to phrase every sentence, or use just the right simile, but rather, I try to bring the reader into what I’m writing and explain things to them. I’m currently trying to get online training sorted which I call “Train-the-Explainer”, because I want to be able to teach people things in a way that helps them really understand the concepts of what’s going on, and I try to have that same idea come out in my writing. I’m likely to end up using phrases like “You know how…, well it’s like that,” in my writing, but when it comes down to it, I want people to read it as if I’m sitting next to them, explaining things to them.

    What I find really hard is writing songs or jokes. I realise that I tell jokes, even during presentations, and I wrote a comedy set for the PASS Summit in 2010 and a song for 2011, but as much as I’d like to do much more of that, I really struggle. I really want to write both, but find myself crossing things out, or finding that things really aren’t as funny (or poignant or whatever) as I’d like. A co-writer would be good – someone I could bounce things off so that they can tell me when an idea is worth pursuing, and when my ranting should be converted into an actual joke.

    4. Assume a time machine has been created, and you are scheduled to speak to a group of potential writers, in which you and I are in attendance. Without concern for the temporal physics that might cause the universe to implode making the answer moot, what would you tell "past us", and do you think that your advice would change where you and I are in our careers now? (like would you tell yourself to get excited for the day you will be sitting here for a rather long period of time answering interview questions and not getting paid for it, instead of feeling the warm sun on your forehead?)

    Don’t get me started on the time travel thing. I have conversations with my kids about that kind of thing, like ideas around how paradoxes could get resolved… but back to the question!

    If I could choose when to go back to, I’d go back much further… to a time when I thought I wasn’t any good at writing (ok, that’s typically still the case – did I mention I’m self-deprecating?), and was choosing to pursue a computer-focused degree. I’d tell myself to really explore the things that I enjoyed, including writing, and to just get started. I could put so many things in that bracket – comedy, writing and music are some that I’ve already mentioned – but I keep finding myself way more interested in people than in technology. I enjoy teaching (adults, not kids), I enjoy ministry, I enjoy community, but my career has largely been focused on technology. I’d tell those potential writers to start doing those things which define them. Solving puzzles can be fun, but unless those puzzles are allowing you to be creative, then they may not be completely satisfying. Of course, I doubt it would make a difference. Someone who’s good at maths will see the creativity in that and still end up in IT.

    5.Finally, beyond the "how" questions, now the big on. There are no doubt tremendous pulls on your time. Why do you do write?

    This comes down to that last question. I write because it’s something which lets me be slightly closer to what I want to spend my time on. I’d like to be completely financially independent, and be able to spend my days helping other people with things. My career as a consultant lets me do some of that, but not in the way that I really want. Those people who ask me for help with things probably know that I quite willingly invest myself into their particular problem, and I honestly do it completely for them, because I enjoy it. Writing lets me do that in a way that means they don’t have to ask – for those people that go looking for something and stumble across it.

    Finally, a bonus question I provide to let the person stretch the topic and talk about anything they want to:

    1. Is there any project you would like to tell people about that we haven't yet mentioned?

    I should be better at marketing, but I’m really bad at it. I should write some stuff about how LobsterPot is a great company that you should all use to improve your data story. We can help you write better T-SQL, tune your system, get your data into a data warehouse, even present it in the amazing PivotViewer platform that we ported to HTML5 so that it runs on iPads. I should write about the Train-the-Explainer thing that I want to do, where I’ll charge people a small amount to attend an online classroom (limited sizes) to have me explain SQL stuff to them in a way that hopefully means that they can not only implement the ideas, but can actually explain it to other people. I should write about how I’m available to teach Advanced T-SQL courses, and will happily come to just about anywhere in the world to do so (although it’ll be at your expense, and it’ll have to fit into my course schedule). But I’m not good at self-promotion, so if your readers want to ask me about these things, they should probably just drop me a line and start a conversation.

    …I’m always happy to talk. [ed. @rob_farley is his twitter if all else fails]

    -------------------------------------------------------

    I definitely want to thank Rob Farley for taking the time to answer my interview today. I got a bit more insight into how yet a third person thinks about the process and value of the writing process. His why answer reminds me of some of the reason I got started answering forum posts. I don’t always love helping individuals directly because usually when you have gone out and asked a question, you are lost and just need that straightforward how do I get out of this jam, answers. Kind of like when you go to the gas (petrol?) station and ask for directions. If they start telling you how you should have planned ahead, while it is good advice, it can tick you off. The only person who is apt to learn a lesson there is a bystander who hears the answer. Since they aren’t lost, hearing how to ever avoid being lost may be useful. When writing. I always try to help with the immediate need first: “the bakery is a block that way”, and then “the app you have on that phone I see will tell you how to get there if you are ever lost again”. They might not care, but the next reader might.

    Still not the answer I would give to the time machine question (other than the paradox stuff!), but I love Rob’s answer.

    The next entry will be Doug Lane, who works in BI. He will be speaking at the PASS BA Conference this week (4/10-12, 2013; so don’t go there if this is 2020 when you are reading this and blame me), so feel free to suggest answers for him if you see him there!

  • Why We Write #2 - An Interview With Mark Vaillancourt

    My second guest is Mark Vaillancourt (whose last name makes me very happy for the copy and paste feature), who is an Information Management consultant working for Digineer, and is a Regional Mentor for PASS in Canada. Mark is also a speaker at SQL Saturday events, as well as the SQL PASS Business Analytics conference in 2013.

    Mark has been blogging regularly since early 2009 on his website (http://markvsql.com/), and interestingly, has degrees in English and Theater, two degrees that almost always lead one into a career in technology.  His twitter account, @markvsql, is also quite active with over 6400 tweets to date. To be honest, I don't enter into this interview knowing nearly as much about Mark Vaillancourt as I did about Thomas LaRock in entry #1, as Mark is more involved in Business Intelligence while I spend most of my conference and blogging time in the OLTP/Relational Engine side of things. I am looking forward to learning more about his writing process and his career in his answers to the following five questions.

    Mark is currently working on his first white paper to be published via Digineer’s website. He wouldn’t reveal the topic, but describes it as a topic that he feels is under-served and will help a lot of people. I hope he will give me the link to include in this interview when he gets it finished.

    -------------------------------------------

    1.  Every superhero has an origin story, and in many cases it wasn't because they specifically were planning to go into the field of superhero-ness. I mean, clearly Peter Parker didn't really want to get bitten by a radioactive spider. So what is your story that led you to spend part of your free time writing about SQL?

    In my early days at Digineer, Lara Rubbelke, who actually hired me during her tenure there, encouraged me to blog about my experiences learning SQL Server. Since I was hired there having never worked with SQL Server before, there were sure to be many learning opportunities. Whenever we would talk about the obstacles I was encountering and what I was doing to overcome them, she would always end the conversation with, “Blog about it.” I finally took her advice and got a blog connected to the old Digineer website. It was some time later that I ended up heading out on my own for my blog, including getting my own domain, with a lot of great advice from Jason Strate. Jason pointed me to, among other things, Brent Ozar’s series about blogging. That was really helpful in getting going. (Editor note: here is a link to his advice on his blog a few years back http://www.brentozar.com/archive/2008/12/how-start-blog/)

    2. We all have influencers that have advanced our careers as writers. It may be a teacher who told you that you had great potential? Another writer who impressed you that you wanted to be like? Or perhaps on the other end of the spectrum it was a teacher who told you that you were too stupid to write well enough to spell your own name, much less have people one day impressed with your writing? Who were your influences that stand out as essential parts of your journey to the level of writer you have become? 

    I had a teacher in high school for English, and also for Creative Writing, named Richard White. He taught me the power of verbs, the importance of dialog, and reinforced the old writing axiom, “Show; don’t tell.” While these three lessons were aimed at fiction, I try to keep them in mind in my technical writing, as well. I try to make my writing sound like I am just speaking. To me, in essence, a blog post is a presentation I only have to give once; a presentation that keeps on presenting, if you will.

    I have also been fortunate enough to have an unofficial blogging mentor: Jason Strate. While he was working to take his own blogging to the next level, he was constantly sharing lessons learned with me. Whether it be a new tool he had tried or just even a bit of blogging philosophy, he set a great example. Many thanks to Jason.

    3.  Can you describe the process you go through to write (including any tools you find indispensable), from inception of an idea until it gets put out for consumption? 

    As far as tools go, Snag-It is the best thing ever. I love that application, and not just because my laptop lacks a “Prt Scn” key. It is so easy to capture screen shots of just about anything and apply highlighting, arrows, shapes, just about anything. I rely on it heavily for images I use in my posts, and sometimes presentations as well.

    Although it is not really a tool, I have to say the Flickr is an AWESOME place to get images for blogs and presentations. Jason Strate showed me that one several years ago. Just filter your search for Creative Commons content and provide links to the source for the images you use and you are off to the races. I have found so many great images out there.

    As far as process, I don’t know that I have one. But I think I can nail down some actions that I tend to take during the creation of many of my posts.

    • Find/Create a fun dataset.

      • The people that created the AdventureWorks database worked very hard to do so and provided examples of a lot of different things in the process. They deserve our gratitude. However, I try very hard to avoid having my blog posts and presentations be about selling bikes and accessories. If you look over my posts, you will see data examples relating to Super Heroes, The Smurfs, Romeo and Juliet… Keeping the datasets fun is part of what makes it fun for me.
    • If I am demonstrating how to perform some set of actions, I make sure to number the steps as well as the Figures (screenshots, etc) used. Then, I truly document every step along with the expected outcome of each. That takes time. And I am OK with that. When one considers how long a blog post will be “out there” after it is posted, taking the time to make it solid and clear is well worth it. It drives me nuts when documentation skips some steps in the middle of a process while assuming you just “know” to do them.
    • When screenshots are not appropriate to the topic, I make sure to find some fun pictures from Flickr to use. I make sure to choose images that are loosely related in some way to what I am writing about, but a bit entertaining as well. A picture of Devil’s Tower makes perfect sense in a post about ones experiences at a SQL Saturday in Chicago. And a 1960s era Ladies restroom sign is the ultimate homage to the Women in Technology Luncheon at the PASS Summit.

    4. Assume a time machine has been created, and you are allowed to go back in time to speak to a group of potential writers, in which you and I are in attendance. What would you tell "past us", and do you think that your advice would change where you and I are in our careers now? <like would you tell yourself that one day you would be sitting here for a rather long period of time answering interview questions and not getting paid for it, instead of…?>

    The best advice I could give “past us” is the same advice I give people who tell me they want to blog but are apprehensive.

    • Don’t be afraid to blog because you feel you don’t know enough. If everyone waited until they knew everything before blogging or presenting, we would have ZERO bloggers and presenters. Blog now; learn while you do it.
    • Don’t be afraid to blog about topics that others have already covered. People learn in different ways. While the topic may be the same, YOUR way of explaining may be exactly what someone needs for that AHA moment that has been eluding them.
    • Don’t be afraid of making a factually incorrect statement and getting called out on it. Mistakes happen. Do your best to verify what you are writing (you will learn a lot during this activity) and you will be fine. If you think a particular statement is true, but are unsure, say so and indicate why. Be honest about what you are writing and people will respect that.

    5. Finally, beyond the "how" questions, now the big one. There are no doubt tremendous pulls on your time. Why do you do write?

    I have a few different answers to this one.

    Before joining Digineer, I worked in general IT. Our department had a purple binder entitled, “Learned the Hard Way – or I don’t EVER want to have to figure this out again.” In that binder we placed really obscure problems we encountered along with their solutions. These were issues that happened so infrequently that remembering the details between occurrences was just not going to happen. Sometime I use my blog as my purple binder.

    I went to college with the intention of becoming a high school English Teacher. I got as far as student-teaching in a local middle school and even substituted a few times. When I discovered Theater, I ended up putting my main focus into acting. Even so, I am still a teacher at heart and LOVE sharing knowledge with other people. Blogging and presenting are an extension of teaching, as far as I am concerned.

    There is a poem commonly attributed to Ralph Waldo Emerson (although there is a bit of controversy about that) that really sums up why I do most things. I have loved this poem since high school and try to keep true to its meaning.

    Success 

    To laugh often and much; 
    to win the respect of intelligent people  
       and the affection of children; 
    to earn the appreciation of honest critics  
       and endure the betrayal of false friends; 
    to appreciate beauty; to find the best in others; 
    to leave the world a bit better, 
       whether by a healthy child, 
       a garden patch 
       or a redeemed social condition; 
    to know even one life has breathed easier 
       because you have lived. 
    This is to have succeeded.

    Blogging is one of the ways that I work toward achieving Success.

    -------------------------------------------

    Wow, that was quite an interview, chocked full of good advice, and something most blogs about technical writing will not have…controversially attributed poetry. Some of my favorite bits include noting that blogging/writing is a great way to learn, and you don’t need to be perfect to start. I find that the research I do to try to avoid being wrong makes working hours on a seemingly simple topic often well worth it when I am working during the day (during the getting paid part of the day!). And you don’t have to be perfect, as long as you try to get it right, are somewhat interesting and provide something for readers to learn (and remember, there are many levels of readers out there). When you are wrong, a reader or two will tell you… I promise. (Thick skin is very helpful for public writing!)

    So far, my biggest surprise has been that I haven’t gotten a particular answer to the time machine question. Stay tuned, someone soon is bound to answer what I have expected (and then I will add a supplementary entry to admit to the answers to the questions I would give myself!)

    To the focus of the series, I now have three reasons why my first two interviewees write:

    1. Because there are words that have to be written

    2. Keep up with stuff I know

    3. Working towards success

    The second answer is definitely high on my list, but it certainly isn’t quite enough to keep me typing on this keyboard week in and week out in my free time (when minimally I could be building something with my Legos and preserving the springiness of the keys on my keyboard.)  So the quest continues, with my next subject Rob Farley, who will hopefully get us one step closer to the answer to the question of why we write.

  • Why We Write #1 - An Interview With Thomas LaRock

    I 've been a writer of trade level technical materials for over 13 years now, writing books, articles, blogs, and even tweets for a variety of outlets, almost exclusively about Microsoft SQL Server. While I won't claim to be the best writer in the world, I feel like I have the process of writing down fairly well, yet, for the life of me, there is still the question of "why do I do this?" stuck in the back of my mind that I have yet to appease.

    Note that my quest specifically deals with non-verbal communication, because it seems to me that presentations are a completely different sort of "why" altogether.

    So I have decided to survey as many of my technical writing colleagues and find out their answer to the "why" question. The only criteria for being included in this set is that you write about a subject like programming, gadgets, computer administration, etc.; and that you don't make your most of your living from writing (in other words, if you stopped writing today, tomorrow you would not be in fear of sleeping in the gutter.) 

    To get the process started, I have asked Thomas LaRock to be my first survey participant. Tom is a SQL Server MVP, has written a very popular book called DBA Survivor for Apress, frequently tweets as @sqlrockstar, and blogs at www.thomaslarock.com where he maintains a popular ranked list of SQL bloggers (of which I am listed in the tempdb category).  He is a member of the executive committee of SQL PASS, and is very active in the SQL community as a speaker. He currently works for  Confio as a Technical Evangelist. Tom is also quite well known in our SQL communitiy as a lover of the delightful cured porcine meat known as bacon.

    If you want to see Tom in person, he will be doing a pre-conference seminar with Grant Fritchey and Dandy Weyn this year at Tech-Ed North America in early June in New Orleans entitled How to Be a Successful DBA in the Changing World of Cloud and On-Premise Data.

    -------------------------------------

      1. Every good superhero (or in your case, SQL Rockstar) has an origin story. What got you involved in writing?

      Tom: The birth of my daughter. I wanted to record as many details as possible and since I had 10MB of available space for a website as part of my cable package (yeah...10 MEGABYTES BABY!) it was easy enough to get a website up quickly and easily. The writing came easily, too, since I was writing about something so close to my heart, something I remain passionate about to this day.

          2. We all have influencers that have advanced our careers as writers. It may be a teacher who told you that you had great potential? Another writer who impressed you that you wanted to be like? Or perhaps on the other end of the spectrum it was a teacher who told you that you were too stupid to write well enough to spell your own name, much less have people one day impressed with your writing? Who were your influences that stand out as essential parts of your journey to the level of writer you have become? 

          Tom: I never try to be exactly like someone else. If I did then I would always be second best. Instead I've learned to take bits and pieces of different people and shape them into who I am today. The writer I admire most these days is Bill Simmons followed by Gregg Easterbrook. Both are known more for their sports writing but their style of writing is one that I try my best to emulate: it's human. I do not enjoy the dryness of technical writing, I prefer to write from my heart about things that I enjoy. That makes it less of a chore.

            3. My writing process is pretty drawn out, often starting on my phone in OneNote, sometimes finishing in 10 minutes, but often taking a year (or years) to finish an idea. Can you describe the process you go through to write, from inception of an idea until it gets put out for consumption? 

            Tom: I used to start a draft inside of WordPress but lately I have been using EverNote to track my ideas and take notes. From there I just decide to go and get it done. I do my best to follow a very loose format: describe a problem, explain why it's an issue, help readers understand any and all tradeoff (cost, benefits, risks), and a few action items for them to use as a take away. Once I have that framework in my head it doesn't take long to get to a finished product. I think I may spend more time on finding a decent image to use with my post than the actual writing itself.

              4. Assume a time machine has been created, and you are allowed to go back in time to speak to a group of potential writers, in which you and I are in attendance. What would you tell "past us", and do you think that your advice would change where you and I are in our careers now? 

              Tom: Write for yourself first. Feed your own soul. Don't worry about what your readers want. You can't write for others, they will never be happy with what you have done. The only person that needs to be happy with your words is you. When you write and share yourself then your readership will grow with people who are naturally drawn to you, and it makes it easier for you to keep sharing your words with people that want to hear them. And no, this advice wouldn't change. Ever.

                5. Finally, beyond the "how" questions, now the big one. There are only 24 hours in a day, and there are no doubt tremendous pulls on your time from family, friends, and pork products, yet, even considering just your blog output, you obviously sit down at a keyboard very often to write. Why?

                Tom: Most of the time I just feel that I have words that need to be written. Doing so helps to feed my soul. I'm at a keyboard a lot because my job requires it, and I am able to spend a lot of my day just writing as a way to communicate with others. Sometimes it's an email, sometimes it's a support ticket, other times it's a blog post.

                -------------------------------------

                I want to thank Tom for being my first participant in my experiment. I find his answer to the “why” question very similar to mine, in that he doesn’t so much offer a tangible reason, but more that he feels compelled to do so. I have to say that the question of how he got started is really quite unexpected, and very interesting, and is going to affect my future questions I ask because more than just the origin story, it will be interesting to see whether people started writing technically first, or for some other reason. I know that before I wrote my first book, I had never written 2 pages of material that wasn’t graded rather harshly by someone with PhD behind their name (or at least one of their low paid minions.)

                Unfortunately (or fortunately if you enjoyed this first entry) Tom certainly did not resolve any of my questions to any level of satisfaction so I am going to have to continue to ask more of my technical writer colleagues for their opinion as well.

                To that end, my next interviewee will be Mark Vaillancourt, whose website is http://markvsql.com/ and whom has a degree in English and Theatre (so he will know if it should have been whom or who earlier in this probably run on sentence), so that could make for quite an interesting interview. Perhaps he may resolve my curiosity about how one can go from the seemingly non-technical to spending his time working on SQL Server Business Intelligence. I don’t know but I look forward to finding out.

              1. My New Year's Goals 2013

                So, I have completely given up on my new year starting on Jan 1 where blogging/writing/community is concerned. I love the holidays WAY too much, and I love football (of the American variety with the oblong ball, of course) WAY too much, and so, that is why this year I waited until after the Super Bowl to get to this point (this was supposed to be posted last week, but #1 on the list got in the way!).

                Last year, I promised to do some things in my resolutions, and because I failed on one (1. get the book finished quickly…it took forever due to unforeseen circumstances), and overly succeeded (time wise) on another (4. I did two pre-cons last year), and both of these took a lot out of me! This year, no book riding my back (yet), but I do have several projects on the way that I will announce later in a more grand way (very exciting stuff to me for sure).

                This year, my goal is to get my community involvement right! I love the community, but sometimes I feel like it is crushing me. I don't want to be one of those people who quit the community, because I do love it and with my daughter grown up now, I have a lot of time to work on it. I enjoy the community so much, and I consider the PASS Summit part of my holiday season, and the people at the Summit a bit like family. So my goals for the year are to keep involved, but to make sure it is reasonable. So I present my 10 things goals for this next year.

                   

                  1. Get healthy. Since I started this blog entry, I had a very minor (yet extremely painful) health issue that was a wake up call (hint, minimally I have to drink a lot more water!) I have spend far too much time writing and speaking (and worrying about writing and speaking) and not enough time working on what matters (and sleeping, need more sleeping too!)  I don't want to miss these two growing up and if I have to drop out of the community to make that happen, I will.
                  2. Do stuff that I want to do, the way I want to do it, (but better). While I have always wanted to be an entertaining and educational speaker (Tom LaRock and Karen Lopez are great examples of this kind of presenting,) my actual presenting style is far different…more straightforward teaching, heavily scripted and heavily practiced. When I get it right, it works, but I constantly try to do far too much in the time allotted, and my nerves can get the better of me when I go off script. (I used to say "as a speaker, I am a good writer," and this is why. As a writer, I can edit myself multiple times!)
                  3. Get in a writing rhythm. Last year, I finally got my What Counts for a DBA series flowing, and this year I am adding a series on SQL Server metadata to the mix to my Simple-Talk blog. I will also try to put up a few blogs about other SQL Server/Design/Professional Development stuff here on SQLBLog too. All of this is leading up to more books in the future…so getting back into a rhythm and trying out new material is very important to the process of writing books for me.
                  4. Stay working in the MSDN forums. I have recently gotten back and active in the Database Design Forum and I plan to keep up answering at least all of the questions I can in that forum and perhaps others.
                  5. Always put in Database Design sessions when I submit to speak. It is what I really love to talk about, and even the SQL Server metadata series is based somewhat on the idea of being able to figure out a design that has been implemented.
                  6. Get a good development session written/practiced. Last year I wrote a session on sequences that I think was pretty good (worst feedback was that I tried to do way too much!) but really didn't resonate with anyone yet. I also did a trigger session at PASS that I have heard was good content, but needs some organization. I am reworking that one into a session I am going to call "How to Write a DML Trigger" (in slight homage to the series of Goofy shorts where you are taught how to do something, but with less dog carnage), that will start at the beginning and work to the existence of a trigger that does some realistic task.
                  7. Speak online more. Speaking online is actually quite comforting for some reason to me. I don't like not being able to get crowd feedback, but at the same time, not expecting feedback keeps that one frown (or two or twenty) from getting in my head and keeps me on my practiced script. I am going to finally start hosting my own practice sessions sometime this year as well. So before I debut a session, I am going to do an online practice session; and before a big conference (SQL PASS or Devlink are my two typical examples) I am going to review the material on my own livemeeting connection with an hour or two warning via twitter.
                  8. Actually blog about devices. Yeah, I love devices and I am contemplating my first tablet purchase this year. I really need to talk about them more than just in tweets, as devices/gadgets are what allow me to have the lifestyle I have as a highly mobile telecommuter.
                  9. Volunteer with PASS in some capacity. I feel like I need to do more for the community than I have been, as such, I am going to volunteer for one or two committees. Last year I volunteered for the selection committee, and was the #1 vote getter who lost :). I may try again, and I have volunteered for another committee too. If I don't get in either one, so be it. I do have plenty to do, but I want to get a bit more involved, perhaps to some day run for the board again, once I feel like I am ready.
                  10. Something I am not yet ready to announce. (and if you are my employer, I am not leaving you, relax :)) But it is something exciting to me, and hopefully you too.

                Most of all, on average, have fun doing what I am doing. This is my hobby, and not currently my career. If I stopped blogging/writing/speaking my life would not change tremendously except that my Lego collection wouldn't stare at me longingly as I walk to my writing chair. At the same time, I would truly miss sitting here at my TableMate II destroying the keyboard on yet another laptop, and even more I would miss the people and experience of all of the conferences I get to attend.

                WP_20130217_002

                I won't lie, often this keyboard is a drag to look at, but just as often it is a true joy. As long as I feel like the focus of Pete Townshend's Guitar and Pen:

                  "When you take up a pencil and sharpen it up
                  When you're kicking the fence and still nothing will budge
                  When the words are immobile until you sit down
                  Never feel they're worth keeping, they're not easily found
                  Then you know in some strange, unexplainable way
                  You must really have something
                  Jumping, thumping, fighting, hiding away
                  Important to say"

                I am going to keep writing and speaking… I really just have to.

              2. One more reason to to understand query plans, not directly performance related

                One of the things that separates a good programmer from a great one is a firm understanding about what is going on inside the computer. For some programming languages, it is very obvious what is going on inside the computer because you are working at a very low level. For example, if you are a C/C++ programmer writing an OS, you will know a lot about the hardware as you will interact with it directly. As a .NET programmer you are more encapsulated from the hardware experience, making use of the .NET framework.

                None of the aforementioned programming languages comes anywhere close to the level of encapsulation that we SQL programmers work with.  When you execute a statement like:

                SELECT *
                FROM    Tablename

                A firestorm of code is executed to optimize your query, find the data on disk, fetch that data, format it for presentation, and then send it to the client. And this is the super dumbed down version.  SQL is a declarative language, where basically we format a question or task for the system to execute without telling it how.  It is my favorite type of language because all of the pushing bits around get tedious.  However, what is important for the professional SQL programmer is to have some understanding of what is going under the covers, understanding query plans, disk IO, CPU, etc. Not necessarily to the depth that Glenn Alan Berry (http://sqlserverperformance.wordpress.com/) does, but certainly a working knowledge.

                Performance is the obvious reason, since it is clearly valuable to be able to optimize a query, but sometimes it can come in handy to debug an issue you are having with a query. Today, I ran across an optimizer condition that, while perfectly understandable in functional terms, would have driven me closer to nuts if I hadn’t been able to read a query plan. The problem came in based on the number of rows returned, either it worked perfectly or it failed with an overflow condition. Each query seemingly touches the exact same rows in the table where the overflow data exists…or did it.

                The setup. The real query that the problem was discovered in was our data warehouse, and was a star schema configuration with 20+ joins. In the reproduction, I will use a simple table of numbers to serve as the primary table of the query.

                create table ExampleTable  -- It really doesn’t matter what this table has. The datevalue column will be used to
                                           -- join to the date table, that I will load from the
                (                          -- from the values I put in this table to make sure all data does exist
                    i int constraint PKExampleTable primary key,
                    dateValue date
                )

                ;with digits (i) as( --(The code for this comes from my snippet page: http://www.drsql.org/Pages/Snippets.aspx).
                                    select 1 as i union all select 2 as i union all select 3 union all 
                                    select 4 union all select 5 union all select 6 union all select 7 union all
                                    select 8 union all select 9 union all select 0)
                ,sequence (i) as ( 
                                    select D1.i + (10*D2.i) + (100*D3.i) + (1000*D4.i) + (10000*D5.i) + (100000*D6.i) 
                                    from digits as D1, digits AS D2, digits AS D3 ,digits AS D4, digits as D5, digits As D6
                )
                insert into ExampleTable(i, dateValue)
                select i, dateadd(day, i % 10,getdate()) -- Puts in 10 different date values
                from sequence
                where i > 0 and i < 1000
                order by i

                Next I will load the date table with all of the distinct dateValue values that we loaded into the ExampleTable, plus one, which is the max date value for the datatype. In the “real” world case, this is one of our surrogate null values we use to indicate that it is the end date. (Yes, we are ignoring the Y10K problem.)

                create table date
                (
                    datevalue date constraint PKDate primary key
                )

                insert into date
                select distinct dateValue
                from   ExampleTable
                union all
                select '99991231'
                go

                In the typical usage, the number of rows is quite small.  In our queries, we are adding 1 to the dateValue to establish a range of a day (in the real query it was actually a month). Executing the following query that returns 99 rows is successful:

                select *, dateadd(day,1,date.dateValue)
                from   ExampleTable
                         join date
                            on date.dateValue = ExampleTable.dateValue
                where  i < 100

                However, remove the where clause (causing the query to return 999 rows):

                select *, dateadd(day,1,date.dateValue)
                from   ExampleTable
                          join date
                             on date.dateValue = ExampleTable.dateValue

                And you will see that this results in an overflow condition...

                Msg 517, Level 16, State 3, Line 2
                Adding a value to a 'date' column caused an overflow.

                Hmmm, this could be one of those days where I don’t get a lot of sleep :).  Next up, I check the max date value that can be returned.

                --show that the top value that could be returned is < maxdate
                select max(date.dateValue)
                from   ExampleTable
                         join date
                            on date.dateValue = ExampleTable.dateValue

                At this point, I start feeling like I am going nuts. The value returned is 2013-01-30. So no data is actually returned that should be too large for our date column… So then I think, well, let's add one to that value and take the max:

                select max(date.dateValue), max(dateadd(day,1,date.dateValue))
                from   ExampleTable
                         join date
                            on date.dateValue = ExampleTable.dateValue

                This returns, mockingly:

                Msg 517, Level 16, State 3, Line 2
                Adding a value to a 'date' column caused an overflow.

                So, since it worked with fewer rows earlier. I decide to try lowering the number of rows again, this time using a derived table, and it DOESN’T error out, even though it is obvious (because I stacked the deck…data) that the same data is just repeated for the dateValue, particularly since we get the same max dateValue as we did earlier.

                select max(date.dateValue), max(dateadd(day,1,date.dateValue))
                from   (select top 100 * from ExampleTable order by i) as ExampleTable
                         join date
                            on date.dateValue = ExampleTable.dateValue
                 
                       
                Well, you are possibly thinking, this just doesn't make sense. It is how I felt too after trying to do the logic in my head. I will admit that I didn’t know about query plans I would have been completely lost. But alas, the answer was fairly easily located in the plan. Taking a look at the plan for the query version that returns 99 rows:

                select *, dateadd(day,1,date.dateValue)
                from   ExampleTable
                         join date
                            on date.dateValue = ExampleTable.dateValue
                where  i <= 100

                We get the following estimated plan:

                image

                In this plan, it uses a nested loops operator, which basically will do 100 seeks from the top input (the ExampleTable), for each row fetching the date value, and then calculating the scalar value (dateadd(day,1,date.dateValue) ) on the values that match in the plan. Since the 9999-12-31 date is never used, there is no overflow.

                However, when the number of rows in the when the size of the output reaches a certain tolerance (in this case 999 instead of 99) from the following query:

                select *, dateadd(day,1,date.dateValue)
                from   ExampleTable
                         join date
                            on date.dateValue = ExampleTable.dateValue

                We get a different plan, one that is causing us issues:

                image

                Instead of nested loops, it uses a Hash Match Join, which takes the entirety of the smaller table and builds an internal hash index (basically setting up buckets that can be scanned much faster than an entire table…in our case, probably just a single bucket), and then scan the other set checking to see if the row exists in the hash index.

                It is in the process of building the hash index that our query runs into trouble. Since the date table is so much smaller, it plans to build the hash index on that table, and pre-creates the scalar values as it is doing the scan, since there are 11 rows in the date table, rather than having to calculate the value 999 times if it did it after the join. When it adds a day to the 9999-12-31 date, it fails.

                I know, the question of how practical is this scenario is bound to arise. I won’t lie to you and suggest that it is likely to happen to you as it it did to me. However, the point of this blog isn’t that this one scenario is bound to happen to you, but rather that understanding how SQL Server executes queries will help to give you insight to fix problems with your system, mostly performance, but sometimes every esoteric issues that won't just leap out as being based on the query plan that was chosen. (For more reading on query plans, check out Grant Fritchey’s Simple-Talk book on query plans: http://www.amazon.com/Server-Execution-Plans-Grant-Fritchey/dp/1906434026).

                In the end, the fix to my problem was simple. Make sure that the value that has meaning in the table, but not in the query, was filtered out:

                select *, dateadd(day,1,date.dateValue)
                from   ExampleTable
                         join date
                            on date.dateValue = ExampleTable.dateValue
                               and date.dateValue < '9999-12-31'

                Note: a commenter noted that in some cases, excluding the offensive data using the ON criteria/WHERE clause may not solve the issue. This is very true, and really will be made evident in the plan. I would expect it to be more likely to be definitely excluded in the JOIN clause, but you really can't guarantee anything that the optimizer might do without changing the source data (or representing the source data using a derived table as):

                select *, dateadd(day,1,date.dateValue)
                from ExampleTable
                       join (select * from date where date.dateValue < '9999-12-31') as date
                            on date.dateValue = ExampleTable.dateValue      
                             

                Looking at the different variances to the plan you should be able to diagnose a "hidden" problem such as I have described by finding the flow of data and making sure that the filtering operation happens before the calculating of the scalar that causes the overflow error. This may harm performance in my query for even the more "ideal" case where it could have used indexes, so you may yet have more work to do...But this is what makes data programming fun, now isn't it?

              This Blog

              Syndication

              Links to my other sites

              Powered by Community Server (Commercial Edition), by Telligent Systems
                Privacy Statement