Jan 14 2011

Failed Blog Posts

garbageOver the last week I’ve started and trashed two blog posts. Let me tell you, that’s painful. You get some great idea and then it all goes south. For example, I was going to explain the difference between a table/heap scan and a clustered index scan. The problem was, I ran into gaps in my knowledge, some outright errors in my beliefs on how data was stored, and really faulty conclusions drawn from those facts and a less than thorough set of tests. I’m not even going to tell you what went wrong with the other notion. Luckily, all this was behind the scenes so I didn’t post my ignorance for all to see.  Since I’m not offering you a chance to point & laugh (in this instance), you might be wondering why you’re here.

I’m using my failures to come up with a good technical blog post as a teaching moment. Or, to put it another way, I need to get a blog post put together, so describing why I don’t have one might be a way to do that. Or, to put it another way, I’ve got a stack of lemons, might as well try my hand at lemonade (although, is there a way to ferment lemons? hmmm, more research on this needed, note to self). The point I want to make? Blogging, even when you mess it up and put together bad information, is a great way to learn.

It’s entirely possible to simply slap together a blog post and put it up. No lie. You can do that. I’m fairly certain some bloggers do. I could do that. Better still, you could go and copy Books Online or some other blogger. But, if you are trying, as I am trying, to actually have a blog that’s useful, more is needed. So you think up an idea, what is the difference between a clustered index scan and a heap scan. Then you start writing down what you know. For example, heaps aren’t stored the same way as clustered indexes. Heaps only have pointers back to the Index Allocation Map, where as clusters are stored with a doubly linked list of pages. Then you start thinking up ways that this is proof of something. Good, bad, indifferent, you have to tell a story about the information. That’s where things went south for me. I’m not going to go into details on all my mistakes. Suffice to say, mistakes were made.

The point is, while I messed things up, in my effort to get it right, I had to run tests. I had to read up on data storage mechanisms. I did searches on the internet to see what people I trust said about this stuff. In short, I learned a lot. And yeah, I started from a bad point and made a number of mistakes, but my efforts to ensure that what I was putting out wasn’t complete garbage resulted in more knowledge, if fewer blog posts.

This is one of the best things about blogging. If you’ve ever considered starting, I would encourage you to try it out.. I get three things out it. First, I learn. I have to learn to put these posts up. I try hard to make sure I’m not putting up utter garbage. I may make small errors, but large ones are hopefully not here. Second, I get a chance to organize my thoughts. Writing down how something works, or at least your understanding of how something works, is extremely helpful in furthering that understanding. This is especially true when you’re attempting to share with others, to teach. Nothing so much improves mastery of a skill as teaching that skill. Finally, I get a great set of documentation. When someone asks me a question on something I’ve blogged about, I can point them to my blog. When I need to remember something that I’ve done before, I’ve got documentation I can use. Blogging is an excellent tool for the knowledge worker. And, of course, an added benefit, if you get something right, you can share with others.

That’s it for lemonade. If you’re looking for more information on heaps, go read Kalen Delaney’s (blog|twitter) Internals book, Paul Randal’s (blog|twitter) blog, Kimberly Tripp’s (blog|twitter) blog, or Tibor Karaszi’s (blog|twitter) excellent blog, especially this post on heaps and inserts. In the mean time, I’m going back to the drawing board, trying new things in order to come up with some more posts to keep this place hopping. If you want to try to move towards mastery yourself, start blogging.

Of course, the real problem with this post is, this is the only one like it I get.

Jan 11 2011

TSQL Tuesday: Resolutions

tsql2sdaySounds like a good action adventure movie. The theme this month on TSQL Tuesday, thanks to our host, Jen McCown (blog|twitter) of SQLawesomesauce, is Resolutions. In particular, Techie Resolutions. I have to do this because Jen just received her MVP award, in case you’ve been under a rock since last week.

I’m not a resolutions kind of guy. I tend to make plans. The plans might start on January 1st, or they might start as soon as they lawyers are done making up the contract. I’m not hung up on schedules except as they relate to due dates. For example, when submissions are due for the PASS Summit or something along those lines, then I’m date driven. In other words, I don’t sit down New Year’s Day or New Year’s Eve or whenever it is that you’re supposed to make resolutions, and come up with some new list of stuff that, this year, I’ll do for sure. Instead, I’m working on my plans, and working my plans, all year long. This year is a little different.

It just so happens that some changes are headed my way (remember those lawyers) and it’s roughly coinciding with the start of the new year (although not as much as I had hoped). So I’m making some pretty serious resolutions, or as I like to think of them, plans, for the coming year. My focus this year is going to shift, a bit, not a lot, but it’s going to require a lot more out of me. So I am resolved to work on three things, technical or related, this year.

First up, I’m finally starting to set up a serious home office where I can do more extensive experiments, tests, development, in an environment that I can isolate and control. But, this means that I’ve got to expand my skill set a bit and learn more about the OS, and virtual machines, and some of that other low-level stuff that I’ve largely been able to ignore because I work for a large company filled with guys who live for that stuff, so I’ve never had to. But I’m learning it now. And you know what? It’s a challenge. Getting virtual machines to communicate to each other and the host was a flipping bear. I never got it to work on Virtual PC, but Virtual Box, thanks to my pleas on twitter, came to the rescue (and how painful was it to install Oracle stuff on my pretty new machine). But I’ve got a lot more to learn in that space.

Next, I’m going to spend a lot more time drilling down on a particular tool set. It’s one I’m already familiar with, but I’m going to get even more intimate. I plan to learn this software forward and backward because I want to be able to use it well, and, more importantly, teach others to use it well. This resolution isn’t so much of a stretch because it’s the kind of thing I like to do anyway.

Finally, I’m going to write more. I plan to pump up the production line and start churning out articles and blog posts. I’m also going to rewrite my book on execution plans, because, frankly, it needs it. Then, I’m going to start working on the Tuning Distilled book, getting it ready for Denali, so that I can release it as close to the release of Denali as possible (which could mean I have another year or so to work on it, but I doubt it). In short, my little fingers are going to fall off from typing so much. I’m actually extremely excited by this. I enjoy writing. I even enjoy the process of writing books (and you know how I try to scare you guys away from that). This will actually be the hard resolution to deliver on, but we’ll see how it goes.

That’s it. Three rather vague resolutions coming up for me for the new year. Stretching out the skill set, trying to deliver more, in general, I’d say these are somewhat worthy goals, at least for me.

Dec 08 2010

So you want to write a book

I had posted a while back on the process of book writing. It was an attempt to educate while scaring you half to death. Writing a book is extremely hard work, especially when you try to do it while holding down a full-time job and maintaining something resembling a life. Enough scare tactics though.

My Apress editor, Jonathan Gennick, great guy, wrote a detailed overview of how to put together your book proposal. The overview is targeted at Apress, but that’s largely a question of formatting. The gist of the article, and the wisdom and excellent information within it, are going to be applicable to any & all publishers. Some of the stuff that really jumped out at me:

  • You’re writing the proposal not only to sell the book idea, but to sell your writing ability
  • You have to think about what’s going to be on Amazon describing your book
  • You actually have to know, list, and argue why your book is better than competing books (and that my friends, is VERY hard to do)
  • You have to build a table of contents for the proposal (yep, time to put the thinking cap on)

There’s tons more information over there. If you really aren’t scared away from book writing by my post, then I strongly suggest you check out Jonathan’s excellent article. I promise you’ll get useful information out of it.

Nov 24 2010

FreeCon

I got my FreeCon. What’s more, I did it in public and didn’t get in trouble.

FreeCon is the brain child of Brent Ozar (blog|twitter). Basically Brent gathered together a few bloggers & writers from the SQL Server community, some extremely well known, like Tom LaRock (blog|twitter), some in the middle, like me, and others that are clearly up & coming like David Stein (blog|twitter).  He jammed us all in a room and made us talk to one another. OK, that’s a lie. He invited us out to this lovely little poetry space in Seattle the day before the PASS Summit was due to start, where we imbibed good food & coffee and had the opportunity to share a lot of great information with each other.

The basic concept was to get people together to network, improve our writing, work on our brands, and help Brent test drive some new presentations. Personally, I’d say it worked extremely well. I came out of the session with some plans, for my blog, for my brand, and, well, for my life. Sitting and listening to people like Karen Lopez (blog|twitter) or Jorge Segarra (blog|twitter) talk about their experiences with writing, blogging, looking for work, etc. was, quite simply, an amazing opportunity. And then there was the information that Brent was putting out in his presentations. I really did pick up some specific information that’s going to change things. Just to share, here are some things from my notes, and yes, they go all over the place because the conversation jumped around, a lot. You have to remember, these were not simply amazing, smart people I was very honored to be with, but they’re vocal. Very. Vocal.  

Notes (minus a bunch of info that, frankly, I don’t want to share because it’s either private notes & plans or comments from others that shouldn’t go out to the world):

  • Read press releases: get the marketing contact: that’s the person to talk to
  • Play your own game (same advice offered by Steve Jones (blog|twitter) who was also there)
  • Look up article “Juggling writing and a job… figure it the <blank> out”
  • Get the book “Secrets of Consulting” by Jerry Weingberg (the red cover one, not the new one)
  • The more they pay you, the more they respect you
  • Price to win the gig is bad, set a high rate
  • Get yourself 50,000 foot goals (high level, important stuff, life, finance, parenting, that sort of stuff)
  • Get book “Escaping Flatland” by David Allen
  • Powerpoint is just a delivery mechanism (that’s OK, I hate PowerPoint, I try to deliver in code as much as possible)
  • Create a brand wheel, three words that describe your brand
    • I posted mine earlier, but here they are again
      • Direct
      • Instructive
      • Useful
  • Manage your brain better (right…)

For me, FreeCon defined some things that have been running around in my brain for the last 18 months or so. It also inspired me to pump up my blogging, to try to improve my game and my brand. I’ve done a very large number of actions in the two weeks since FreeCon went down. Many of them are already bearing fruit, for example, I’m now hosted on my own domain. Others may bear fruit in the near term, and I have EXTREMELY high hopes for these. Still more are the high level goals that I’ve started to define that will likely take me years to deliver.

Why am I posting all this for you? Because FreeCon is now a thing. The attendees of the original FreeCon have been granted the ability to hold their own, within a set of parameters, not least of which, is a quorum of FreeCon grads. Expect to see these occurring in and around other conventions & summits like Connections, Tech-Ed, maybe a SQL Saturday or two, SQL Rally, and certainly the Summit. If you get the invite to go, jump on it. If you haven’t received an invite, blog more, write articles more, get your name out there and you may then receive that invitation.

Kind of weird to consider that sitting around with a bunch of friends, online acquaintances, and downright strangers can result in life changing events, but, for me, that’s what happened. Thanks Brent. I’m so glad I made the list. And an extremely heartfelt thanks to all the Freecs at FreeCon. You guys are really wonderful people.

Oct 28 2010

Writing Opportunities

Are you looking for opportunities to show off your elite writing skills and consumate SQL Server knowledge? Want a chance to build up the resume a bit? Are you like me and you have a hard time thinking of ideas to write about? I’ve got a solution for you. There’s a new forum over on SQL Server Central that is all about requests for articles. It’s mostly small stuff, easy one-page articles, a bit more than a blog post but a bit less than a full blown multi-page drill down. Also, if you have ideas for articles that you’d like to see someone write up, you can post them there. You should read the rules about the forum, which aren’t complicated, and then dive in.

Feb 19 2010

So You Want to Write a Book?

What the heck is wrong with you?

Still interested? Fine. I’ll tell you my take on this whole business. I’m only an expert on this if you take the adage that the expert is the guy that’s a page head of you in reading a book. To date I have published two full books and three chapters in a third. I can easily think of enough people who all have more experience than that with book writing that I’d have to take off both shoes to count them all.

Is anyone still reading? Cool. So you have the desire to write a book? Let me pop your first bubble. You will make very little money. This bears repeating. You will make very little money. If you were to figure out your hourly rate for writing this book, something I’ve never had the guts to do, you’ll cry yourself to sleep at night for being such a total fool to agree to write a book.

Still here? Let me pop your second bubble. Your home life/free time/family time/sleep cycle/excercise will suffer. Yes, that’s right. You’re getting paid pennies and you’re suffering for it.

Glutton for punishment? OK. Here’s how you do it. Do you have an idea for a book? If not, stop here and go and think of one. I’m assuming a technical readership since this is a geek blog about geek topics by a geek. Do you think you know everything there is to know about… oh, I don’t know, SQL Server 2008 hierarchy data, and you’re convinced you can fill 200+ pages talking about it? Great! You’re on your way. Pick a publisher. I’m not providing links or suggestions here. If you don’t know any book publishers that means you’re not reading books. If you don’t read them, I don’t think you should write them. Stop here and go read a technical book, preferably one of mine.

Have a publisher in mind? Go to their web site. Every one I’ve looked at has a “write for us” web page. Follow the directions there and submit your idea. You’re now on your way. I’m sure things are different for the big name authors or authors outside the technical sphere, but since you don’t have a name and you’re writing technical books, that’s pretty much all you need to do. You don’t need an agent or a lawyer. You’re going to get a non-negotiable contract from the publisher and you’re going to sign it because you want to write a book. Assuming they like your idea. Ah, but you’re not done with simply submitting the idea. You need to do two other things, and these won’t be easy. You need to define your market. Are there more than 20 people interested in reading a book on the hierarchy data type? Sound easy? It is a bit. Here’s a more challenging one for you. You also need to define how your book will stand out from the rest. If Itzik or Kalen has written 50 pages on hierarchy data types… ready for it… how will your 50 pages be better than theirs?

Stopped crying? Other options are to write articles for publication in places like SQL Server Central or Simple-Talk or SQL Server Standard (and I know the editor from SQL Server Standard most intimately, he needs articles). A few articles about the hierarchy data type and you’ll be a recognized expert. Now, if one of the publishers decides, “Hey, we could really use a book on the hiearchy data type,” and they happen to notice your article, you might get invited to write for them. Or, someone else writing a book needs a chapter on the hiearchy data type, they may contact you to help out. Or, if you’re constantly hanging out on one of the online discussion sites answering detailed questions about the hiearchy data type, the publisher or another author may find you and ask you to write a chapter.

Anyone still here? Of the two approaches, I’d suggest writing articles first. That’s going to do two things for you. First, it gets your name out there and you’ll get noticed. That’s how I did it. Second, it’ll let you decide if you like writing. The first time you get an article back that’s gone through a serious technical edit and it looks like someone has questioned every other word you wrote and the comments, while kind, bash through your arguments and ideas like a wrecking ball… you get to decide how much you like writing. A book is 50 times worse.

Want more? That’s about all there is. There are lots of details when it comes to the act of writing the book, how versions are managed, the writing schedule, promotion (if you get any), how you split the oodles of cash with your co-authors, if any (authors I mean, there will be very little cash), that sort of thing.  Networking is a useful tool. I wrote my second book because I happened to be at a publishing party for an author and I ran into his editor. A short conversation and a couple of emails later… I’m losing sleep and skipping exercise for very little money. Having friends and contacts will lead toward getting partnered up for a book. That’s how you can get tapped to write a chapter or three.

Still reading or have you all long ago stopped reading because this book writing thing is way too much of a pain?

Would I do it again? In a heart beat.

Jan 04 2010

SQL Server Standard Article Abstracts

I’d really like to publish your article in SQL Server Standard. All I need from you is an abstract, a description of what the article will be. I’ve posted this before, but I’ve never provided examples. So, to get people started, here are a few examples of articles that have been accepted and will be published (shortly I hope).

Here’s a great example from Andy Leonard. It includes a great amount of detail, more than I need to make my decision, but with this much detail, the decision is much easier because I know exactly what this article is likely to look like:

   I’m interested in writing an article on SSIS for SQL Server Standard. I’d like to cover ways packages can exchange information at run-time. There are a couple obscure ways parent-child packages interact that make for some interesting design opportunities and architectures – especially when combined. For example, most SSIS developers realize Events “bubble” up through EventHandlers; so that if a Control Flow contains a Sequence Container which contains an Execute SQL Task, an error generated at the Execute SQL Task will raise the tasks’ OnError EventHandler, then the Sequence Container’s OnError EventHandler, and finally the OnError EventHandler of the package. What’s not so well know is: If a package calls another package via the Execute Package Task, the calling package is said to be the parent (or master) package; the called package is the child. In this scenario, events raised in the child at the package level will bubble to the parent package.
   The second obscure behavior is variables in the parent package are inherited in the child package. The cool thing is: they’re inherited ByRef - unlike parent package configurations, which pass variable values ByVal from parent to child. ByVal is one-way communication; ByRef is bi-directional, which means I can make a change to a variable in the child package and that change will persist in the parent after the child package has completed executing.
Here’s one from Sam Bendayan. It’s sharp and clear and defines the article in a way that I can understand what will be covered. It’s shorter than Andy’s, but it’s still enough:
It is common knowledge that Application Programmers and DBAs don’t get along in many cases, and the root of this is that the two technologies are fundamentally different.  It is also common knowledge that many Application Programmers write SQL as part of their job.  However, often their familiarity with loop-based programming is their undoing, taking them down strange SQL paths that produce bad SQL code and make their relationship with the DBAs even worse.  This article will show how difficult the transition is, even if it doesn’t seem to be at first, and how you have to adjust your thinking in order to successfully program in T-SQL.
And finally, one from Michelle Ufford. This is the most concise example and I would be less likely to accept it if I didn’t already have a good working knowledge of Michelle, her abilities and skill set. But still, this is enough:
In this article, I will give you a practical overview of how to design effective partitioning schemes.  I will cover good partitioning design, the differences between aligned and non-aligned indexes, and some examples of when to use each.  I’ll also discuss some issues to be aware of when designing partitioning schemes, including performance, replication, and sliding-window considerations. 
If you’re waiting because you think putting together the abstract will be as much work as the article itself, it won’t be. Four or five sentences that clearly define a topic that can obviously fill out 3000+ words is all that’s needed. At this time we’re only accepting articles from writers with some experience, but nothing extensive (previous articles in a technical reviewed publication or three articles in a peer-reviewed publication or a book). Send the abstracts to grant.fritchey@sqlpass.org.
 
 
 
Dec 02 2009

SQL Standard Update

Andy Warren in the latest PASS Connector has posted an update on where we’re at with the SQL Server Standard. I’m so happy that Andy has been keeping this out in front of people. It provides some impetus to get the work done. Except for the authors thanks (and they’re receiving $500, so they should say thank you), there’s very little feedback on the Standard to show whether or not people are interested, if the goals and ideas are worthy… In other words, you guys need to let us know what you think about the thing.

Two more articles are in the hopper to be published. Another has gone into copy edit. We’re technical editing two others. That’s five more, so you guys can expect to see another ten weeks worth of SQL Server Standard. But after that…

Don’t you want $500? Just submit an abstract and your writing history to grant.fritchey@sqlpass.org. We’ll get you started.

Oct 10 2009

Another Book

Well, part of one anyway. I wrote three chapters of Rob Walter’s new book, Beginning SQL Server 2008 Administration. I think I’ve mentioned it before. Well, my copies showed up in the mail. Nothing like holding that book in your hands as proof that you’ve done it. When everything is electronic and we stop printing dead tree books… I don’t think it’s going to be nearly as satisfying to finish a book. Please, look it over. I think it’s going to be a good resource for people just getting started as DBA’s.